我正在使用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;
答案 0 :(得分:0)
好的,所以你的代码片段格式不正确,因而难以阅读,但我认为exports.admin
被称为req, res
的快速路由。到现在为止还挺好。然后,您拨打getUsers
并向其传递回调,但getUsers
不接受回调,也需要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
编码为中间件,仅供参考。