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

Express应用渲染EJS文件报错:Cannot find module 'ejs'

解决Express中EJS模块找不到的问题(Error: Cannot find module 'ejs')

核心排查与修复步骤:

  • 确认本地依赖有效性:Node.js优先加载项目本地node_modules中的模块,全局安装无法替代本地依赖。执行以下命令确保EJS被正确添加到项目依赖:

    npm install ejs --save
    

    检查项目根目录的node_modules文件夹是否存在ejs子目录,同时确认package.json的dependencies中包含ejs条目。

  • 修正视图路径与渲染写法:
    你的代码存在两处关键问题:

    1. Express默认会在项目根目录的views文件夹(注意复数)查找视图文件,若你的文件夹名为view,需手动指定视图目录:
      const path = require("path");
      app.set("views", path.join(__dirname, "view"));
      
    2. 已设置view engine为ejs时,res.render()无需添加.ejs后缀,直接传入文件名即可:
      res.render("create");
      
  • 清理模块缓存与重装依赖:
    若存在模块缓存冲突,执行以下操作重置依赖:

    rm -rf node_modules package-lock.json
    npm install
    

    重启Node服务,确保缓存完全清空。

  • 匹配Node环境版本:
    若使用多版本Node(如nvm),需确保当前项目使用的Node版本与EJS安装环境一致。执行nvm use切换到项目对应的Node版本后,重新安装EJS。

修改后的完整代码:

const express = require("express");
const mongoose = require("mongoose");
const morgan = require("morgan");
const path = require("path");

const app = express();

app.use(morgan("dev"));
app.use(express.json());

// 配置EJS视图引擎与视图目录
app.set("view engine", "ejs");
app.set("views", path.join(__dirname, "view"));

app.get("/", (req, res) => {
  res.render("create");
});

mongoose
  .connect("mongodb://127.0.0.1:27017/Pull_request")
  .then(() => {
    app.listen(8000, () => {
      console.log("app is listening on port 8000");
    });
  })
  .catch((err) => {
    console.log(err);
  });

内容的提问来源于stack exchange,提问作者zissad

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.17 20:33:29