Erreur: Impossible de trouver le module ‘ejs’

Voici mon erreur complète:

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.comstack (/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) 

Mon code source est également très simple:

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

Dans mon dossier, ejs est installé dans node_modules et j’ai utilisé npm install ejs . entrer la description de l'image ici alors ma question est ce qui donne? Que fais-je mal pour que le nœud ne puisse pas trouver EJS quand je l’ai clairement installé?

Merci

J’ai eu exactement le même problème il y a quelques jours et je ne pouvais pas le comprendre. Je n’ai pas réussi à résoudre le problème correctement, mais cela fonctionne comme une solution temporaire:

Montez d’un niveau (au-dessus de app.js) et faites npm install ejs . Il créera un nouveau dossier node_modules et Express devrait trouver le module à ce moment-là.

Installer express localement

( npm install express dans le répertoire racine du projet)


Votre projet dépend à la fois des express et ejs , vous devriez donc les énumérer toutes les deux comme dépendances dans votre package.json .

De cette façon, lorsque vous exécuterez npm install dans votre répertoire de projet, il installera à la fois express et ejs , de sorte que var express = require('express') sera l’installation locale d’express (qui connaît le module ejs que vous avez installé localement). ) plutôt que le global, ce qui ne le fait pas.

En général, c’est une bonne idée de lister explicitement toutes les dépendances dans votre package.json même si certaines d’entre elles sont déjà installées globalement, vous n’avez donc pas ce type de problèmes.

J’ai eu le même problème. Une fois que j’ai défini la variable d’environnement NODE_PATH à l’emplacement de mes modules (/usr/local/node-v0.8.4/node_modules dans mon cas), le problème a disparu. PS NODE_PATH accepte une liste de répertoires séparés par deux-points si vous devez en spécifier plusieurs.

Dans mon cas, j’ai juste ajouté ejs manuellement dans package.json :

  { "name": "myApp" "dependencies": { "express": "^4.12.2", "ejs": "^1.0.0" } } 

Et lancez npm install (peut-être avez-vous besoin de l’exécuter avec sudo ) Veuillez noter que ejs regarde le répertoire des vues par défaut

J’ai installé ejs utilisant la commande npm install ejs au niveau du répertoire express et cela a résolu mon problème.

J’ai installer express en utilisant les étapes de la mention dans le guide express http://expressjs.com/guide.html

J’ai installé les deux: express et ejs avec l’option –save:

npm install ejs –save npm install express –save

De cette façon, les fichiers express et ejs sont des fichiers package.json de dépendances.

Installez-le localement plutôt que de l’installer globalement. Ensuite, votre projet peut être exécuté sur n’importe quelle machine sans aucune erreur. Je pense que c’est mieux.

 npm install express --save npm install ejs --save 

J’ai eu ce problème. J’ai débogué en utilisant node-inspector et j’ai vu que depuis le dossier node_modules où se trouvaient les fichiers source express, ejs n’était pas installé. Donc je l’ai installé là et ça a fonctionné.

npm install -g ejs ne l’a pas placé là où je l’attendais même si NODE_PATH était défini sur le même dossier node_modules. Probablement le faire mal, vient de commencer avec node.

ÉTAPE 1

Voir npm ls | grep ejs npm ls | grep ejs au niveau racine de votre projet pour vérifier si vous avez déjà ajouté la dependency ejs à votre projet.

Sinon, ajoutez-le en tant que dependencies à votre projet. (Je préfère append une dépendance à package.json au lieu de npm install le module.)

par exemple.

 { "name": "musicpedia", "version": "0.0.0", "private": true, "scripts": { "start": "node ./bin/www" }, "dependencies": { "body-parser": "~1.15.1", "cookie-parser": "~1.4.3", "debug": "~2.2.0", "express": "~4.13.4", "jade": "~1.11.0", "ejs": "^1.0.0", "morgan": "~1.7.0", "serve-favicon": "~2.3.0" } } 

ÉTAPE 2, téléchargez les dépendances

 npm install 

STEP 3 vérifier le module ejs

 $ npm ls | grep ejs musicpedia@0.0.0 /Users/prayagupd/nodejs-fkers/musicpedia ├── ejs@1.0.0 

Ajoutez une dépendance dans package.json , puis exécutez npm install

  { ... ... "dependencies": { "express": "*", "ejs": "*", } } 

Je pense que le moteur de template ejs n’est pas correctement installé sur votre machine. Vous venez d’installer le moteur de template en utilisant npm

 npm install ejs --save 

puis inclure le code suivant dans app.js

 app.set('view engine', 'ejs') 

Je résous le même problème après avoir installé express dans mon répertoire de projet. Auparavant, je l’installais dans une scope globale avec l’option -g avec la commande npm install.

Dans mon cas, il n’y avait pas d’erreur de syntaxe idiote, mais la même erreur s’est produite. J’avais installé ejs et ejs-mate globalement. Je l’ai installé localement et j’ai trouvé mon erreur résolue.

Réinstaller npm, express et ejs corrigé mon problème

Celui-ci a travaillé pour moi,

  1. Sur votre terminal ou cmd -> Accédez au répertoire de vos applications,
  2. cd pathtoyourapp / AppName
  3. relancez votre installation npm
  4. relancez votre ‘npm install express’
  5. relancez votre ‘npm install ejs’

Après cela, l’erreur a été corrigée.

 app.set('view engine', 'ejs') 

et puis dans le terminal

 npm install ejs --save 

résout le problème

veuillez vous assurer que vos dépendances dans vos fichiers package.json sont à jour. Essayez de les réinstaller un par un, en vous assurant également que votre NPM est la dernière version (à jour). Cela a fonctionné pour moi. Je vous conseille de lancer npm install pour les paquets (c’est ce qui a fonctionné dans mon propre cas après avoir refusé de travailler car j’ai ajouté les dépendances manuellement).

Dans mon cas, c’était une erreur stupide – c’était une faute de frappe dans le middleware. J’ai écrit app.set('view engine', 'ejs.'); le point a causé l’erreur. J’ai installé ejs et express localement

Après avoir installé Express V xxx Vous devez choisir un moteur de vue de modèle. Il y a beaucoup vraiment facile à apprendre. Mon interlocuteur personnel est EJS .

Un autre très bon et facile à apprendre pourrait être:

  • Guidon
  • PUG (ancien jade)

Pour installer EJS (Et corriger votre erreur) Exécutez à la racine de votre projet:

 npm install ejs 

Ou si vous utilisez Yarn:

 yarn add ejs 

Ensuite, vous aurez besoin du module, alors ouvrez votre fichier où vous avez besoin d’express (généralement app.js ou server.js)

ajoutez ci-dessous var express = require('express');

 var ejs = require('ejs');