首页 > 解决方案 > NodeJs 路由不渲染

问题描述

我正在构建一个 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;

这是我的视频控制器:

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) => {};

这是我的视频路由器:

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;

当我转到 'videos/"id"/edit' 时,我在浏览器中看到此错误 - 无法获取 /videos/5ed2a169eb370432c01f5ebd/edit

我在视图目录中有一个名为“editVideo.pug”的哈巴狗模板,但我不知道它为什么不起作用。

标签: node.jsexpresspathroutes

解决方案


推荐阅读