如何将参数传递给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