Nodejs + Express - 无法调用未定义的方法'json'

时间:2013-06-30 04:01:06

标签: node.js express

我正在使用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;

1 个答案:

答案 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编码为中间件,仅供参考。