1
req.params.id
をmongooseと使用すると、定義されていません。私は私のapp.js
のidパラメータを定義していて、私のルートファイルは定義していないからです。idが別ファイルに定義されている場合、req.params.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パラメータにアクセスできるように、この問題を解決する方法はありますか?
EDIT: 私は私のブラウザで使用パス:あなたがmergeParams
というオプションを有効にする必要があり、この作業では
http://localhost:7000/courses/5a4111286ae1111f541c3d88/lectures/new
ブラウザで使用している 'path'を投稿したり、これを呼び出すテストをすることはできますか? –
パスが今追加されました –
わかりませんが、 'findById'はidを' ObjectId'にキャストしないと思います。これはクエリで必要です。また、req.params.idの値をログに記録しましたか? –