当id在单独的文件中定义时,req.params.id返回undefined

问题描述 投票:1回答:1

当我使用req.params.id和mongoose时它会返回undefined。我相当肯定这是因为我在我的app.js中定义了id参数而不是我的路由文件。

路线文件:

//NEW - Form for adding new course
router.get("/new", function(req, res) {
    // find course by id
    Course.findById(req.params.id).exec(function(err, foundCourse) {
        if(err) {
            res.redirect("back");
        } else {
            //show template with correct id
            res.render("lectures/new", {course: foundCourse});
        }
    });
});

App.js文件:

app.use("/courses/:id/lectures", lectureRoutes);

有没有办法解决这个问题,以便我可以从路由文件中访问id参数?

编辑:我在浏览器中使用的路径:

http://localhost:7000/courses/5a4111286ae1111f541c3d88/lectures/new
node.js express mongoose
1个回答
4
投票

为此,您必须启用名为mergeParams的选项。

const router = express.Router({ mergeParams: true });

请参阅文档here

© www.soinside.com 2019 - 2024. All rights reserved.