如何将参数传递给express.js中的嵌套控制器?

我有一个这样的路由器:如何将参数传递给express.js中的嵌套控制器?

app.get('/rest/userList', (req, res) => { 

UserList.find({}, (err, users) => {

if (err) res.send(err);

res.json(users);

});

});

我想改变这样的:

app.get('/rest/userList', getUsers); 

function getUsers(req, res) {

UserList.find({}, createResponse);

}

function createResponse(err, users) {

if (err) return res.send(err);

return res.send(users);

}

然而,在createResponse函数中'res'是未定义的。我怎样才能做到这一点?

回答:

您可以使用.bind()额外的参数绑定到回调:

app.get('/rest/userList', getUsers); 

function getUsers(req, res) {

UserList.find({}, createResponse.bind(null, res));

}

function createResponse(res, err, users) {

if (err) return res.send(err);

return res.send(users);

}

回答:

app.get('/rest/userList', getUsers, createResponse); 

function getUsers(req, res, next) {

UserList.find({}, function (err, users) {

if (err) {

req.errr = err;

} else {

req.users = users;

}

next();

});

}

function createResponse(req, res) {

if (req.err) return res.send(req.err);

return res.send(req.users);

}

以上是 如何将参数传递给express.js中的嵌套控制器? 的全部内容, 来源链接: utcz.com/qa/258941.html

回到顶部