ExpressJS报错:Failed to lookup view 'index' in views directory 求助
解决Express中hbs模板"Failed to lookup view 'index' in views directory"错误
核心问题原因
Express默认会在当前执行文件所在目录下查找views文件夹,但你的代码文件可能不在项目根目录(比如在src子目录),导致默认路径无法定位到正确的views文件夹。你仅设置了模板引擎类型,未显式指定views目录的实际路径。
解决方案
在代码中添加views目录路径的配置,用path.join拼接正确路径:
修改后的完整代码:
const express = require("express") const path = require("path") require("../src/db/conn") const app = express(); const port = process.env.PORT || 3000; const static_path = path.join(__dirname, "../public") // 新增:设置views目录的正确路径 const views_path = path.join(__dirname, "../views") app.use(express.static(static_path)) app.set("view engine", "hbs"); // 新增:注册views目录路径 app.set("views", views_path); app.get("/" , (req,res)=>{ res.render("index") }) app.listen(port , ()=>{ console.log("server is listening on port no 3000" ) })
额外检查项
- 确认目录结构匹配:项目目录需符合如下结构:
项目根目录 ├── src │ ├── app.js(你的代码文件) │ └── db │ └── conn.js ├── public └── views └── index.hbs - 检查文件名拼写:确保
views文件夹下的模板文件是index.hbs,文件名大小写与代码中res.render("index")完全匹配(Linux/macOS系统区分文件名大小写)。
内容的提问来源于stack exchange,提问作者krish
相关产品推荐
相关产品推荐

