gpt4 book ai didi

node.js - Node + Express .post 路由抛出错误。预期回调,得到对象

转载 作者:搜寻专家 更新时间:2023-10-31 22:58:39 25 4
gpt4 key购买 nike

我目前正在开发一个使用 Express + Node 的应用程序。我最近使用以下语法向 app.js 文件添加了一个新的 .post 路由:

app.post('/api/posts/saveComment', posts.saveComment);

posts 在上面定义为:

var posts = require('./routes/posts.js');

saveComment 定义如下:

exports.saveComment = function(req, res) {
//function stuff in here, yada yada
}

现在,当我尝试运行应用程序时, Node 抛出错误:

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();
});
});
}

最佳答案

嗯...尴尬的答案,saveCommment 在我的 posts.js 中定义了 3 个 m。呃。

关于node.js - Node + Express .post 路由抛出错误。预期回调,得到对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18540965/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com