我是node / express的新手,我一直得到这个例外。
错误:.post()需要回调函数但得到[object Undefined]
使用此代码
nu = require('./routes/create_newissue.js');
app.post('/create_newissue',nu.resources);
如果我把它放在app.js中,exports.create_newissue
中的代码就可以正常工作。但是,如果我将它放在一个单独的.js
文件中,则会抛出上述错误。
答案 0 :(得分:14)
create_newissue.js
exports.resources = function(req, res){
// Your code...
}
答案 1 :(得分:3)
您收到的错误表示您发送到 app.post 的 nu.resources 不是一个功能。
我不确定你做了什么,因为你没有提供太多的代码......
但这是你需要的结构:
<强> app.js:强> 通常你将所有路由放在不同的文件中,并将其添加到app.js,如下所示:
require('./routes')(app);
但如果从app.js而不是routes.js直接执行它也应该有用
<强> routes.js 强>
var nu = require('./path/nu');
module.exports = function (app) {
app.post('/create_newissue',nu.resourcesFunc);
};
<强> nu.js 强>
exports.resourcesFunc = function (req, res) {
//TODO: do your stuff here...
};
对于摘要,请仔细检查您是否将函数(req,res){...} 提供给 app.post(),因为它应该是:
app.post('/address',function (req, res) {...});
答案 2 :(得分:0)
导入文件的问题。在您的情况下,您错过了括号 它应该是 nu = require('./ routes / create_newissue.js')();
答案 3 :(得分:0)
在导入函数时检查是否有错字错误。在检查是否犯了一些拼写错误时,我遇到了同样的问题。