2013-07-22 105 views
1

我跑Node.js的,快速,貓鼬和MongoDB本地和有這樣的代碼在我的app.js:Node.js app.post不會填充MongoDB?

var express = require('express'); 
var app = express(); 
app.use(express.bodyParser()); 

// Decaler Mongoose 
var mongoose = require('mongoose'); 
mongoose.connect('localhost','tinyreports'); 

// Require the Report model 
var models = require('./models/reports.js'); 

app.post('/report/add', function(req, res) { 
    var title = req.body.title; 
    var recipients = req.body.recipients; 

    var report = new models.Report({title:title}); 
    report.save(function(err, report) { 
     if (err) return handleError(err); 
     res.json({title:report.title}); 
    }); 

}); 

app.listen(3000); 

console.log('server_start'); 

我也有以下的模型(reports.js):

var mongoose = require('mongoose'); 
var Schema = mongoose.Schema; 

var reportsSchema = new Schema({ 
    title: String 
}); 

exports.Report = mongoose.model('Report', reportsSchema); 

當我運行cURL帖子curl -X POST -H "Content-Type:application/json" -d '{"title":"test"}' http://localhost:3000/report/add來填充數據庫時,什麼都不會發生。

我在這裏做錯了什麼?我的代碼或整個設置有問題嗎?

謝謝!

+0

我沒有看到任何明顯的問題。你如何驗證數據庫內容?你在'/ report/add'裏面嘗試過一些'console.log'調用來確認事情正如你所期望的那樣工作嗎? –

+0

我剛試過,你的代碼工作正常,也許嘗試升級所有庫到最新? – zsong

+0

@PeterLyons我做了一個res.json的標題,它返回一個不錯的數組,所以它應該工作。當我在mongo shell中執行db.tinyreports.save({title:「test」})時,它會很好地填充數據庫。但是當我運行我的代碼時什麼都沒有奇怪... – Ismailp

回答

-1

所以,我想通了,我的代碼沒有錯,但因爲我是新來的MongoDB我看數據庫中的錯誤的地方,因此無法找到任何條目... DOH!