node.js - 为什么会这样?
问题描述
我是新来表达的。我正在开发一个 MERN 应用程序,并且在使用 express 创建服务器时遇到了一个错误。
const express = require("express");
const app = express();
const PATH = require("path");
const LAYOUT = require("express-ejs-layouts");
const PORT = process.env.PORT || 3000;
app.use(LAYOUT);
app.set("views", PATH.join(__dirname,"/resources/views"));
app.set("view engine", "ejs");
app.get("/", (req, res) => {
res.render('home');
});
app.listen(PORT, () => {
console.log(`Listning on port ${PORT}...`);
});
错误是
Error: Failed to lookup view "layout" in views directory "C:\Users\ayond\OneDrive\Desktop\my_projects\mern\resources\views"
at Function.render (C:\Users\ayond\OneDrive\Desktop\my_projects\mern\node_modules\express\lib\application.js:580:17)
at ServerResponse.render (C:\Users\ayond\OneDrive\Desktop\my_projects\mern\node_modules\express\lib\response.js:1012:7)
at C:\Users\ayond\OneDrive\Desktop\my_projects\mern\node_modules\express-ejs-layouts\lib\express-layouts.js:113:20
at tryHandleCache (C:\Users\ayond\OneDrive\Desktop\my_projects\mern\node_modules\ejs\lib\ejs.js:278:5)
at View.exports.renderFile [as engine] (C:\Users\ayond\OneDrive\Desktop\my_projects\mern\node_modules\ejs\lib\ejs.js:489:10)
at View.render (C:\Users\ayond\OneDrive\Desktop\my_projects\mern\node_modules\express\lib\view.js:135:8)
at tryRender (C:\Users\ayond\OneDrive\Desktop\my_projects\mern\node_modules\express\lib\application.js:640:10)
at Function.render (C:\Users\ayond\OneDrive\Desktop\my_projects\mern\node_modules\express\lib\application.js:592:3)
at ServerResponse.render (C:\Users\ayond\OneDrive\Desktop\my_projects\mern\node_modules\express\lib\response.js:1012:7)
at ServerResponse.res.render (C:\Users\ayond\OneDrive\Desktop\my_projects\mern\node_modules\express-ejs-layouts\lib\express-layouts.js:77:18)
但是当我在设置之前使用路由并使用方法时它按预期工作。为什么会这样?
const express = require("express");
const app = express();
const PATH = require("path");
const LAYOUT = require("express-ejs-layouts");
const PORT = process.env.PORT || 3000;
app.get("/", (req, res) => {
res.render('home');
});
app.use(LAYOUT);
app.set("views", PATH.join(__dirname,"/resources/views"));
app.set("view engine", "ejs");
app.listen(PORT, () => {
console.log(`Listning on port ${PORT}...`);
});
解决方案
推荐阅读
- scala - 在 Scala 函数式编程中,是否有一种惯用的方式来映射状态?
- python - Spark Dataframe Select 使用 Python 的列列表
- php - 在一条线上绘制点,在数组中的点之间
- c++ - 如果元素存在,则获取容器中元素的索引
- python - 如何在python中完成多处理部分后运行代码
- youtube-api - 获取有关 YouTube 上的实时流媒体的实时信息
- javascript - 有没有办法使用 chrome 开发者工具在我的 chrome 扩展中提供的屏幕截图 API?
- windows - 无法在主分区上设置恢复分区 ID
- python - 如何确保每个工作人员只使用一个 CPU?
- assembly - NASM - 创建文件或目录时如何设置权限