我正在尝试为用户创建一条路线,以便能够检查其他用户的个人资料.但是,我希望通过2个不同的网址加入这些配置文件/profile/nickname,/profile/id以便可以使用用户的昵称或用户ID来接收配置文件.我尝试了以下代码:
app.get("/profile/:id", function(req, res) {
User.findOne( { $or : [{ "nickname": req.params.id },{ "_id": req.params.id }] }, function(err, user) {
if(user)
{
res.render('users/profile.jade', {
locals: {
currentUser: user,
title: user.nickname +"'s Profile",
jsf:[],
}
});
}
else
{
res.render('404.jade', {
status: 404,
title: 'Page Not Found',
jsf: []
});
}
});
});
Run Code Online (Sandbox Code Playgroud)
问题是,它似乎只是使用id而不是昵称,这意味着/profile/4f4ae474546708b219000005如果我访问的东西工作,但如果我访问/profile/mmellad哪个是该用户的给定昵称,我得到404页面.
还有一件事我觉得它对昵称很好用,它改变了查询
User.findOne( { $or : [{ "nickname": req.params.id },{ "_id": req.params.id }] }
Run Code Online (Sandbox Code Playgroud)
至
User.findOne( { "nickname": req.params.id } …Run Code Online (Sandbox Code Playgroud)