Nodejs + Express – 不能调用未定义的方法“json”

我正在与Express,Hoganjs,Nodejs合作。

下面的代码不断返回“500 TypeError:不能调用未定义的方法'json'

我认为我打电话给getUsers是有问题的,但是我太多了。 我所提到的教程或论坛都没有提供帮助。

exports.admin = function(req, res){ getUsers(function(error, res){ res.render('admin', { title: 'Admin', userlist: res }); }); }; function getUsers(req, res) { res.json([ {username: "fake", permission: "admin" }, {username: "fake2", permission: "user" } ]) } exports.getUsers = getUsers; 

好的,所以你的代码片段格式不正确,难以阅读,但我认为exports.admin被称为一个快速的路线,采取req, res 。 到现在为止还挺好。 然后你调用getUsers并传递一个callback,但getUsers不会callback,它也需要req, res 。 目前还不清楚你想做什么,但是这样的事情是合理的:

 exports.admin = function(req, res) { loadUsers(function (error, users) { if (error) { return res.status(500).send(error); } res.render('admin', { title: 'Admin', userlist: users }); } }; exports.getUsers = function(req, res) { loadUsers(function (error, users) { if (error) { return res.status(500).send(error); } res.send(users); }); } function loadUsers(callback) { process.nextTick(function () { callback(null, [ {username: "fake", permission: "admin" }, {username: "fake2", permission: "user" }] ); }); } 

一个更好的模式是编码loadUsers作为中间件,FYI。