【问题标题】:How to solve Error : cannot find module "ejs"?如何解决错误:找不到模块“ejs”?
【发布时间】:2021-04-08 07:46:14
【问题描述】:

我使用 ejs 开始了一个新的(也是第一个)express.js 项目,但在访问页面时遇到以下错误:

Error: Cannot find module 'ejs '
Require stack:
- C:\wamp64\www\myproject\node_modules\express\lib\view.js
- C:\wamp64\www\myproject\node_modules\express\lib\application.js
- C:\wamp64\www\myproject\node_modules\express\lib\express.js
- C:\wamp64\www\myproject\node_modules\express\index.js
- C:\wamp64\www\myproject\server.js
    at Function.Module._resolveFilename (node:internal/modules/cjs/loader:925:15)
    at Function.Module._load (node:internal/modules/cjs/loader:769:27)
    at Module.require (node:internal/modules/cjs/loader:997:19)
    at require (node:internal/modules/cjs/helpers:92:18)
    at new View (C:\wamp64\www\myproject\node_modules\express\lib\view.js:81:14)
    at Function.render (C:\wamp64\www\myproject\node_modules\express\lib\application.js:570:12)
    at ServerResponse.render (C:\wamp64\www\myproject\node_modules\express\lib\response.js:1012:7)
    at C:\wamp64\www\myproject\server.js:10:13
    at Layer.handle [as handle_request] (C:\wamp64\www\myproject\node_modules\express\lib\router\layer.js:95:5)
    at next (C:\wamp64\www\myproject\node_modules\express\lib\router\route.js:137:13) 

这是我从头开始的方式:

  1. 创建了一个名为 myproject 的新文件夹
  2. 创建了一个名为 server.js 的新文件
  3. node init
  4. 修改 package.json 以添加 nodemon
  5. npm install --save nodemon
  6. npm install --save express
  7. npm install --save ejs

我的文件 server.js:

var app = require('express')();
app.set('view engine', 'ejs');

app.get('/', function (req, res) {
    res.setHeader('Content-Type', 'text/plain');
    res.send('Accueil');
})
    .get('/album', function(req, res){
        res.setHeader('Content-Type', 'text/plain');
        res.render('album.ejs ', {name :'yop'});
    })
    .use(function(req, res, next){
        res.setHeader('Content-Type', 'text/plain');
        res.status(404).send('Page introuvable !');
    });

app.listen(8080);

我的文件 package.json:

{
  "name": "myproject",
  "version": "1.0.0",
  "description": "",
  "main": "server.js",
  "scripts": {
    "test": "echo \"Error: no test specified\" && exit 1",
    "start": "nodemon server.js"
  },
  "author": "",
  "license": "ISC",
  "dependencies": {
    "ejs": "^3.1.5",
    "express": "^4.17.1",
    "nodemon": "^2.0.6"
  }
}

我的项目结构:

My project directory
   node_modules folder
   views folder
      album.ejs file
   package.json
   server.js

【问题讨论】:

  • 你是否也在全球范围内安装了 Express?
  • 我尝试在全球范围内安装 express 并执行“npm install -g express”,但我仍然有同样的错误。
  • 不,我的意思是你应该完全相反。如果你有全局 express 安装,它可能会导致 ejs 出现问题。请添加专辑.ejs 代码。
  • 最初我只有我在帖子中详述的内容,所以只在本地安装 express

标签: node.js express ejs


【解决方案1】:

你不小心在 ejs 后面加了一个空格。

res.render('album.ejs ', {name :'yop'});

删除该空间,如下所示。

res.render('album.ejs', {name :'yop'});

您可以只使用不带扩展名的文件名。

res.render('album', {name :'yop'});

【讨论】:

  • 非常感谢!那个空间((当然还有我自己!)是这个错误的原因。
【解决方案2】:

在您的 server.js

app.set('view engine', 'ejs')
app.set('views', __dirname + '/views')

【讨论】:

  • 感谢您的帮助,但如果我添加此行,它并不能解决错误。
猜你喜欢
  • 1970-01-01
  • 2011-12-06
  • 2021-08-31
  • 2022-07-22
  • 2017-06-02
  • 2022-10-12
  • 2019-09-25
  • 2012-02-19
相关资源
最近更新 更多