Node.js req.params.id未定义,我可以';我不明白为什么
以下是浏览器中的url:Node.js req.params.id未定义,我可以';我不明白为什么,node.js,Node.js,以下是浏览器中的url: http://localhost:3001/user/59cc018171149931f4e435ac 这是路线的代码: router.get("/new", middleware.userLoggedIn, function(req, res){ console.log(req.params.id); //find user by id User.findById(req.user._id, function(err, foundUser){
http://localhost:3001/user/59cc018171149931f4e435ac
这是路线的代码:
router.get("/new", middleware.userLoggedIn, function(req, res){
console.log(req.params.id);
//find user by id
User.findById(req.user._id, function(err, foundUser){
if(err) {
console.log(err);
} else {
res.render("characters/addCharacter", {user: foundUser});
}
});
});
这是中间件:
middlewareObj.userLoggedIn = function(req, res, next) {
// eval(require('locus'));
if (req.isAuthenticated() && req.params.id.equals(req.user._id)) {
return next();
}
res.redirect("/login");
};`
当我运行应用程序时,一切正常。除了上面路由上的请求,它会给我一个错误“TypeError:Cannotreadproperty'equals'ofUndefined”。当我取下中间件并尝试console.log(req.params.id)时,它返回“undefined”。我做错了什么
编辑:
我在app.js中配置了我的路线:
app.use("/user/:id/characters", characterRoutes);
所以“:id”就在那里。
当我使用/new/:id
而不是/new
获取新错误消息时:
“无法获取/user/59c23b864262fc2c186677be/characters/new”使用
/new/:id
而不是/new
router.get("/new/:id", middleware.userLoggedIn, function(req, res){
console.log(req.params.id);
//find user by id
User.findById(req.user._id, function(err, foundUser){
if(err) {
console.log(err);
} else {
res.render("characters/addCharacter", {user: foundUser});
}
});
});
必须在路径中指定所需的参数,如so
/new/:id
,然后可以在代码中使用req.params.id
以下是将req.params转换为任何第一个参数的明确文档: 设params:any=req.params
然后params.id应该可以工作了然后我得到了另一个错误。我忘了提到我已经在app.js中设置了我的路线。我已经编辑了帖子。我已经编辑了,这次成功了。谢谢你的努力!