1. ホーム
  2. node.js

[解決済み] エラーです。Cannot find module 'ejs'

2022-02-01 01:04:27

質問

以下は私の完全なエラーです。

Error: Cannot find module 'ejs'
    at Function._resolveFilename (module.js:317:11)
    at Function._load (module.js:262:25)
    at require (module.js:346:19)
    at View.templateEngine (/Users/shamoon/local/node/lib/node_modules/express/lib/view/view.js:133:38)
    at Function.compile (/Users/shamoon/local/node/lib/node_modules/express/lib/view.js:65:17)
    at ServerResponse._render (/Users/shamoon/local/node/lib/node_modules/express/lib/view.js:414:18)
    at ServerResponse.render (/Users/shamoon/local/node/lib/node_modules/express/lib/view.js:315:17)
    at /Users/shamoon/Sites/soldhere.in/app.js:26:7
    at callbacks (/Users/shamoon/local/node/lib/node_modules/express/lib/router/index.js:272:11)
    at param (/Users/shamoon/local/node/lib/node_modules/express/lib/router/index.js:246:11)

私のソースコードも非常にシンプルです。

var express = require('express');

var app = module.exports = express.createServer();

// Configuration

app.configure(function(){
  app.use(express.bodyParser());
  app.use(app.router);
  app.use(express.static(__dirname + '/public'));
});

app.set('view engine', 'ejs');
app.set('view options', {
    layout: false
});

app.get('/', function(req, res) {
  res.render('index', {
    message : 'De groeten'
  });
});

app.listen(3000);
console.log("Express server listening on port %d in %s mode", app.address().port, app.settings.env);

私のフォルダには、ejsがnode_modulesにインストールされており、これを使用して取得しました。 npm install ejs . で、質問なんですが、どうなんでしょう?EJSがインストールされているはずなのに、nodeがEJSを見つけられないのは、何か間違っているのでしょうか?

ありがとうございます。

解決方法は?

数日前、これと全く同じ問題が発生し、解決できませんでした。 まだきちんと解決できていませんが、これは一時的な対処法として有効です。

1つ上の階層(app.jsの上)に移動し、以下を実行します。 npm install ejs . 新しい node_modules フォルダが作成され、Express はその中でモジュールを見つけるはずです。