Nodejs 求各位老师帮忙看看 谢谢了,Error: Cannot find module 'ejs'

Nodejs 求各位老师帮忙看看 谢谢了,Error: Cannot find module 'ejs'

index.js

var express = require(‘express’);

var app = express();

app.set(‘views’, __dirname); app.set(‘view engine’, ‘ejs’);

app.get(’/’, function(req, res){ res.render(‘page’); });

app.listen(8888, function(){ console.log(‘asd’); });

page.ejs <html> <body> <h1>Supplies</h1>
<ul>
<% for(var i=0; i<supplies.length; i++) {%>
<li><%= supplies[i] %></li>
<% } %>
</ul> </body> </html>

报错

Error: Cannot find module 'ejs’ at Function.Module._resolveFilename (module.js:338:15) at Function.Module._load (module.js:280:25) at Module.require (module.js:364:17) at require (module.js:380:17) at new View (D:\tools\nodejs\node_modules\express\lib\view.js:43:49) at Function.app.render (D:\tools\nodejs\node_modules\express\lib\application.js:509:12) at ServerResponse.res.render (D:\tools\nodejs\node_modules\express\lib\response.js:900:7) at D:\tools\nodejs\nodetest\ejslesson2\index.js:12:7 at Layer.handle [as handle_request] (D:\tools\nodejs\node_modules\express\lib\router\layer.js:82:5) at next (D:\tools\nodejs\node_modules\express\lib\router\route.js:100:13)

步骤 npm init npm install ejs --save expressjs是全局的。 麻烦各位看看谢谢了


5 回复

根据你提供的信息,错误 Error: Cannot find module 'ejs' 表明你的 Node.js 应用无法找到 EJS 模板引擎模块。这通常是因为该模块没有正确安装或路径配置不正确。

解决方案

  1. 确保 EJS 模块已正确安装: 你需要确保 EJS 模块已经通过 npm 正确安装到项目中。你可以通过运行以下命令来安装 EJS 模块:

    npm install ejs --save
    

    这个命令会将 EJS 添加到你的 package.json 文件中的依赖项列表中,并且会在 node_modules 目录下创建一个 EJS 的本地副本。

  2. 检查 index.js 文件: 确保你的 index.js 文件正确设置了视图引擎。你的代码看起来是正确的,但为了确保一切正常,可以重新检查一遍:

    var express = require('express');
    var app = express();
    
    // 设置视图引擎为 EJS
    app.set('views', __dirname);
    app.set('view engine', 'ejs');
    
    // 定义路由
    app.get('/', function(req, res) {
        var supplies = ['Pen', 'Paper', 'Pencil'];
        res.render('page', { supplies: supplies });
    });
    
    // 启动服务器
    app.listen(8888, function() {
        console.log('Server is running on port 8888');
    });
    
  3. 检查文件路径: 确保 page.ejs 文件位于与 index.js 文件相同的目录中。EJS 默认查找 views 目录下的文件,如果 views 目录不存在,它会默认使用当前目录。

  4. 启动应用: 最后,运行你的 Node.js 应用:

    node index.js
    

    如果一切设置正确,你应该不会看到 Cannot find module 'ejs' 错误,并且应用应该能够正确渲染 page.ejs 文件。

示例代码总结

  • 安装 EJS 模块

    npm install ejs --save
    
  • index.js 文件

    var express = require('express');
    var app = express();
    
    app.set('views', __dirname);
    app.set('view engine', 'ejs');
    
    app.get('/', function(req, res) {
        var supplies = ['Pen', 'Paper', 'Pencil'];
        res.render('page', { supplies: supplies });
    });
    
    app.listen(8888, function() {
        console.log('Server is running on port 8888');
    });
    
  • page.ejs 文件

    <html>
    <body>
    <h1>Supplies</h1>
    <ul>
    <% for(var i=0; i<supplies.length; i++) { %>
    <li><%= supplies[i] %></li>
    <% } %>
    </ul>
    </body>
    </html>
    

希望这些步骤能帮助你解决这个问题!


顶一下,各位老师帮忙看看,谢谢了

package.json { “dependencies”:{ “express” : “~4.0.0”, “ejs” : “*” } } index.js var express = require(‘express’); var app = express(); app.set(‘views’, __dirname); app.set(‘view engine’, ‘ejs’);

var supplies = [‘hello’,‘world’]; app.get(’/’, function(req, res){ res.render(‘page’,{supplies:supplies}); });

app.listen(8888, function(){ console.log(‘asd’,{}); }); 其他不变。 现在这个目录下执行npm install, 然后node index.js,就可以了。 result.PNG

你的npm install ejs --save这个命令应该没有在项目目录下执行,所以告诉你找不到ejs模块。 这个命令执行成功后,你会在项目目录下看到一个node_modules目录,里面包含一个ejs目录。

根据你的描述,错误信息 Error: Cannot find module 'ejs' 表明你的项目中缺少 ejs 模块。你已经使用了 npm install ejs --save 来安装 ejs 模块,但问题仍然存在。

解决方案

  1. 确认模块是否正确安装

    • 打开命令行工具,进入项目根目录。
    • 运行 npm list ejs 命令来检查 ejs 是否已正确安装。
      npm list ejs
      
    • 如果输出类似以下内容,说明 ejs 已正确安装:
      your-project@1.0.0 D:\your-project
      └── ejs@3.1.9
      
  2. 确保依赖项正确加载

    • 确认你的 package.json 文件中有 ejs 作为依赖项。如果没有,再次运行 npm install ejs --save 安装。
    • 重新启动你的 Node.js 应用程序。

示例代码

以下是修改后的 index.js 文件:

var express = require('express');
var app = express();

// 设置视图引擎为 ejs
app.set('views', __dirname);
app.set('view engine', 'ejs');

// 确保你有一个名为 "page.ejs" 的视图文件
app.get('/', function(req, res) {
    // 示例数据
    var supplies = ['笔', '纸', '笔记本'];
    res.render('page', { supplies: supplies });
});

app.listen(8888, function() {
    console.log('服务器运行在 http://localhost:8888');
});

page.ejs 文件

确保 page.ejs 文件位于项目的 views 目录下:

<html>
<body>
<h1>Supplies</h1>
<ul>
<% for(var i=0; i<supplies.length; i++) { %>
<li><%= supplies[i] %></li>
<% } %>
</ul>
</body>
</html>

最后一步

确保你的项目结构如下:

your-project/
├── node_modules/
├── views/
│   └── page.ejs
├── package.json
└── index.js

如果以上步骤仍然无法解决问题,请确保你的 Node.js 和 npm 版本是最新的,并且没有其他环境配置问题。

回到顶部