javascript - 使用 pug 构建 express.js 应用程序时出错
问题描述
当我搜索 url: http://localhost:3000/users/edit-profile 页面返回
错误:无法在 Function.render 的视图目录“C:\Users\SuJinKim\Documents\WeTube1\views”中查找视图“用户详细信息”(C:\Users\SuJinKim\Documents\WeTube1\node_modules\express\lib\application .js:580:17) 在 ServerResponse.render (C:\Users\SuJinKim\Documents\WeTube1\node_modules\express\lib\response.js:1012:7) 在 userDetail (C:\Users\SuJinKim\Documents\WeTube1 \controllers/userController.js:5:45) 在 Layer.handle [as handle_request] (C:\Users\SuJinKim\Documents\WeTube1\node_modules\express\lib\router\layer.js:95:5) 在下一个 ( C:\Users\SuJinKim\Documents\WeTube1\node_modules\express\lib\router\route.js:137:13) 在 Route.dispatch (C:\Users\SuJinKim\Documents\WeTube1\node_modules\express\lib\router \route.js:112:3) 在 Layer.handle [as handle_request] (C:\Users\SuJinKim\Documents\WeTube1\node_modules\express\lib\router\layer.js:95:5) 在 C:\Users\SuJinKim\Documents\WeTube1\node_modules\express\lib\router\index.js:281 :22 在参数 (C:\Users\SuJinKim\Documents\WeTube1\node_modules\express\lib\router\index.js:354:14) 在参数 (C:\Users\SuJinKim\Documents\WeTube1\node_modules\express\ lib\router\index.js:365:14)
我认为这是因为路由器的顺序,但是..它没有用
我的代码和哈巴狗文件上什至没有用户详细信息......
这是我的主要 app.js
import "core-js"
import express from "express";
import morgan from "morgan";
import helmet from "helmet"
import bodyParser from "body-parser";
import cookieParser from "cookie-parser";
import { localsMiddleware } from "./middlewares";
import globalRouter from "./routers/globalRouter"
import userRouter from "./routers/userRouter";
import videoRouter from "./routers/videoRouter"
import routes from "./routes"
const app = express();
app.set("view engine", "pug");
app.use(helmet());
app.use(cookieParser());
app.use(bodyParser.json());
app.use(bodyParser.urlencoded({ extended: true}));
app.use(morgan("dev"));
app.use(localsMiddleware)
app.use("/", globalRouter);
app.use(routes.users, userRouter);
app.use(routes.videos, videoRouter);
export default app;
这是我的 userRouter.js
import express from "express";
import routes from "../routes";
import { userDetail, editProfile, changePassword } from "../controllers/userController";
const userRouter = express.Router();
userRouter.get(routes.editProfile, editProfile);
userRouter.get(routes.changePassword, changePassword);
userRouter.get(routes.userDetail, userDetail);
export default userRouter;
这是我的 userController.js
export const join = (req, res) => res.render("join", { pageTitle: "Join"});
export const login = (req, res) => res.render("login", { pageTitle: "Login"});
export const logout = (req, res) => res.render("logout", { pageTitle: "Logout"});
export const userDetail = (req, res) => res.render("userDetail", { pageTitle: "User Detail"});
export const editProfile = (req, res) => res.render("editProfile", { pageTitle: "Edit Profile"});
export const changePassword = (req, res) => res.render("changePassword", { pageTitle: "Change
Password"});
这是我的 routes.js
// Global
const HOME = "/";
const JOIN = "/join";
const LOGIN = "/login";
const LOGOUT = "/logout";
const SEARCH = "/search";
// Users
const USERS = "/users";
const USER_DETAIL = "/:id";
const EDIT_PROFILE = "/edit-profile";
const CHANGE_PASSWORD = "/change-password";
// Videos
const VIDEOS = "/videos";
const UPLOAD = "/upload"
const VIDEO_DETAIL = "/:id";
const EDIT_VIDEO = "/:id/edit"
const DELETE_VIDEO = "/:id/delete"
const routes = {
home: HOME,
join: JOIN,
login: LOGIN,
logout: LOGOUT,
search: SEARCH,
users: USERS,
userDetail: USER_DETAIL,
editProfile: EDIT_PROFILE,
changePassword: CHANGE_PASSWORD,
videos: VIDEOS,
upload: UPLOAD,
videoDetail: VIDEO_DETAIL,
editVideo: EDIT_VIDEO,
deleteVideo: DELETE_VIDEO
};
export default routes;
如您所见,没有“用户详细信息”常量或变量。我找不到它有什么问题......如果你的帮助我真的很感激!
这是视图文件夹中的哈巴狗文件..在视图中有changePassword.pug, deleteVieo.pug, editProfile.pug, home.pug, join.pug, login.pug, logout.pug, search.pug, upload.pug, userDetail.pug, videoDetail.pug.
解决方案
推荐阅读
- typescript - 未找到带有“字符串”类型参数的索引签名
- sql - JPA spring 不尊重 FetchType.LAZY
- android - 为什么添加 ScrollView 时 ImageView Image Zoomed?
- c++ - 转移到 setter 的参数
- sql - 如何使用列值范围应用 NTILE(4)?
- corda - 启动corda节点时数据库驱动程序错误
- java - 应用程序内存未通过 remove() 或 removeAll() 方法在 HashMap 中清除
- c - 将 C++11 和 C 库一起用于复数
- sql - 在 SQL 中转置/透视数据
- java - Instagram如何将评论textview和用户名textview合二为一?