You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.10 06:40:52