当查询找不到用户时,为啥页面没有重定向?
Posted
技术标签:
【中文标题】当查询找不到用户时,为啥页面没有重定向?【英文标题】:Why page ain't redirecting, when query can't find user?当查询找不到用户时,为什么页面没有重定向? 【发布时间】:2017-09-14 15:19:41 【问题描述】:为什么当请求没有找到用户时,他就挂了,而不是重定向到主页?如何解决这个问题?
User.findOne(_id: userid, function(err, user)
if(err)
res.redirect('/');
if (user)
res.render('user',
title: user.nickname,
id: user._id,
nickname: user.nickname,
email: user.email,
name: user.name,
surname: user.surname,
age: user.age,
country: user.country,
city: user.city,
phoneNumber: user.phoneNumber,
myId: req.user._id
)
);
【问题讨论】:
【参考方案1】:只有在请求有错误时才会重定向。如果您没有错误并且没有用户,则不会发生任何事情。如果 findOne 没有找到匹配项,它将返回一个空文档,而不是错误。
尝试将第一个 if 语句更改为:
if(err || !user)
res.redirect('/');
【讨论】:
【参考方案2】:因为没有找到任何东西与出现错误不同,请尝试以下操作:
User.findOne(_id: userid, function(err, user)
if(err || !user)
res.redirect('/');
else
res.render('user',
title: user.nickname,
id: user._id,
nickname: user.nickname,
email: user.email,
name: user.name,
surname: user.surname,
age: user.age,
country: user.country,
city: user.city,
phoneNumber: user.phoneNumber,
myId: req.user._id
)
);
【讨论】:
以上是关于当查询找不到用户时,为啥页面没有重定向?的主要内容,如果未能解决你的问题,请参考以下文章