当用户点击应用程序并且不属于用户管理集合时,我正在进行用户身份验证我想将用户ID发送给客户端,以便他可以请求访问权限。我们使用csp cookie获取用户信息。
所以在下面的代码中,如果User
架构找不到useruid,我想将该信息发送给客户端,以便用户可以在请求访问表单中使用。在下面的代码中,当架构找不到useruid时它会抛出404 。知道如何解决这个问题吗?
user.controller.js
function handleEntityNotFound(res) {
return function(entity) {
if (!entity) {
res.status(404).end();
return null;
}
return entity;
};
}
exports.current = function(req, res) {
// console.log('username', req);
User.findById(req.useruid)
.populate({path: 'groups', select: '_id name', options: {sort: {name: 1}}})
.execAsync()
.then(handleEntityNotFound(res))
.then(responseWithResult(res))
.catch(handleError(res));
};
答案 0 :(得分:1)
如果没有匹配,findById()会返回[]
。
尝试:
exports.current = function(req, res) {
User.findById(req.useruid, function (err, results) {
if (err) {
console.log(err);
}
if (results.length) {
responseWithResult(res);
} else {
handleEntityNotFound(res);
}
});