2

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

1 回答 1

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

于 2013-06-30T04:51:33.320 回答