[英]How to solve Error : cannot find module "ejs"?
I started a new (and first) express.js project using ejs but facing to this following error while accessing to the page:我使用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)
Here is how I proceed from the beginning:这是我从头开始的方式:
node init
npm install --save nodemon
npm install --save express
npm install --save ejs
My file server.js:我的文件 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);
My file package.json:我的文件 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's structure:我的项目结构:
My project directory
node_modules folder
views folder
album.ejs file
package.json
server.js
in your server.js在你的server.js中
app.set('view engine', 'ejs')
app.set('views', __dirname + '/views')
You add one extra space accidentally behind the ejs.您不小心在 ejs 后面添加了一个额外的空格。
res.render('album.ejs ', {name :'yop'});
Remove that space like below.删除该空间,如下所示。
res.render('album.ejs', {name :'yop'});
And you could just use the file name without extension name.你可以只使用没有扩展名的文件名。
res.render('album', {name :'yop'});
add this to your code just below app.set('view engine', 'ejs)将其添加到 app.set('view engine', 'ejs) 下方的代码中
app.engine('ejs', require('ejs').__express);
If you already had installed ejs, you must uninstall and install it again Here are the steps:如果您已经安装过ejs,则必须卸载并重新安装,步骤如下:
npm uninstall ejs --save
npm install ejs --save
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.