Node.js 如何解决错误:找不到模块;“ejs”吗;?

Node.js 如何解决错误:找不到模块;“ejs”吗;?,node.js,express,ejs,Node.js,Express,Ejs,我使用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\nod

我使用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) 
以下是我如何从一开始就着手:

  • 创建了一个名为“myproject”的新文件夹
  • 创建了一个名为server.js的新文件
  • 节点初始化
  • 修改了package.json以添加nodemon
  • npm安装--保存节点mon
  • npm安装--保存express
  • npm安装--保存ejs
  • 我的文件服务器.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);
    
    {
      "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
    
    
    My file package.json:

    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);
    
    {
      "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
    
    
    我的项目结构:

    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);
    
    {
      "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
    
    

    在您的server.js中

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

    在您的server.js中

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

    您意外地在ejs后面添加了一个额外的空间

    res.render('album.ejs ', {name :'yop'});
    
    如下图所示移除该空间

    res.render('album.ejs', {name :'yop'});
    
    您可以只使用文件名而不使用扩展名

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

    您意外地在ejs后面添加了一个额外的空间

    res.render('album.ejs ', {name :'yop'});
    
    如下图所示移除该空间

    res.render('album.ejs', {name :'yop'});
    
    您可以只使用文件名而不使用扩展名

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

    您是否也在全球安装了Express?我尝试过使用全球安装的Express执行“npm安装-g Express”,但仍然存在相同的错误。不,我的意思是您应该执行完全相反的操作。如果安装了global express,可能会导致ejs出现问题。请添加album.ejs代码。最初,我只是在我的帖子中详细介绍了我的内容,所以只在本地安装了express。您是否也在全局安装了express?我尝试过在全局安装express时执行“npm install-g express”,但仍然有相同的错误。不,我的意思是您应该执行完全相反的操作。如果安装了global express,可能会导致ejs出现问题。请添加album.ejs代码。最初,我只拥有我在帖子中详细介绍的内容,所以只需本地安装express。感谢您的帮助,但如果我添加这一行,它不会解决错误。感谢您的帮助,但如果我添加这一行,它不会解决错误。非常感谢!那个空间((当然还有我自己!)是这个错误的原因。非常感谢!那个空间((当然还有我自己!)是这个错误的原因。