我正在构建Express应用程序,并且在路由方面遇到一些问题。 这是我的routes.js
const EDIT_VIDEO = "/edit";
const routes = {
editVideo: (id) => {
if (id) {
return `videos/${id}/edit`;
} else {
return EDIT_VIDEO;
}
},
deleteVideo: DELETE_VIDEO,
};
export default routes;
这是我的videoController:
import Video from "../models/Video";
import routes from "../routes";
export const getEditVideo = async (req, res) => {
const {
params: { id },
} = req;
try
const video = await Video.findById(id);
res.render("editVideo", { pageTitle: `Edit ${video.title}`, video });
} catch (error) {
console.log(error);
res.redirect(routes.home);
}
};
export const postEditVideo = (req, res) => {};
这是我的videoRouter:
import express from "express";
import routes from "../routes";
import {
getEditVideo,
postEditVideo,
} from "../controllers/videoController";
const videoRouter = express.Router();
/*------Video Routes------*/
//Edit
videoRouter.get(routes.editVideo(), getEditVideo);
videoRouter.post(routes.editVideo(), postEditVideo);
export default videoRouter;
当我转到“视频/“ id” /编辑“时,我在浏览器中看到此错误-无法获取/ videos / 5ed2a169eb370432c01f5ebd / edit
我在views目录中有一个名为“ editVideo.pug”的哈巴狗模板,我不知道为什么它不起作用。