错误:.post()需要回调函数但得到[对象未定义]

时间:2014-04-08 16:35:00

标签: javascript node.js express

我是node / express的新手,我一直得到这个例外。

  

错误:.post()需要回调函数但得到[object Undefined]

使用此代码

nu = require('./routes/create_newissue.js');
app.post('/create_newissue',nu.resources); 

如果我把它放在app.js中,exports.create_newissue中的代码就可以正常工作。但是,如果我将它放在一个单独的.js文件中,则会抛出上述错误。

4 个答案:

答案 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)

在导入函数时检查是否有错字错误。在检查是否犯了一些拼写错误时,我遇到了同样的问题。