Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/37.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Node.js req.params.id未定义,我可以';我不明白为什么_Node.js - Fatal编程技术网

Node.js req.params.id未定义,我可以';我不明白为什么

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){

以下是浏览器中的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){
        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中设置了我的路线。我已经编辑了帖子。我已经编辑了,这次成功了。谢谢你的努力!