我目前正在使用Express + Node的應用程序。我最近增加了一個新的.post
路線app.js
文件,使用以下語法:Node + Express .post路徑拋出錯誤。預期的回調,得到對象
var posts = require('./routes/posts.js');
而且saveComment
被定義爲這樣:
app.post('/api/posts/saveComment', posts.saveComment);
posts
如上定義
exports.saveComment = function(req, res) {
//function stuff in here, yada yada
}
現在,當我嘗試運行應用程序時,節點發生錯誤:
Error: .post() requires a callback functions but got a [object Undefined]
saveComment
顯然是一個函數,我不理解它爲什麼看不到這個。我在saveComment
之上定義了另一個功能,我可以毫無錯誤地完全引用,但是將該功能內容複製到saveComment
仍然會產生相同的錯誤。我很茫然,任何幫助都非常感謝。的posts.js
var mongo = require('../mongo.js');
exports.queryAll = function(req, res) {
var db = mongo.db;
db.collection('posts', function(err, collection) {
collection.find().toArray(function(err, doc) {
if (err)
res.send({error:err})
else
res.send(doc)
res.end();
});
});
}
exports.saveCommment = function(req, res) {
var db = mongo.db,
BSON = mongo.BSON,
name = req.body.name,
comment = req.body.comment,
id = req.body.id;
db.collection('posts', function(err, collection) {
collection.update({_id:new BSON.ObjectID(id)}, { $push: { comments: { poster:name, comment:comment }}}, function(err, result) {
if (err) {
console.log("ERROR: " + err);
res.send(err);
}
res.send({success:"success"});
res.end();
});
});
}
你能否顯示模塊帖子的導出? – syned
@syned - 發佈內容 – tymeJV
這真的很尷尬......'saveComment'在'posts.js'中有3個m。我要去睡午覺。 – tymeJV