Вот моя полная ошибка:
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, когда он у меня явно установлен?
благодаря
Ответы:
У меня была такая же проблема пару дней назад, и я не мог ее понять. Не удалось правильно решить проблему, но это работает как временное решение:
Поднимитесь на один уровень выше (выше app.js) и сделайте
npm install ejs
. Он создаст новую папку node_modules, и тогда Express должен найти модуль.источник
npm install ejs -g
может быть более чистым обходным путем. (-g
для глобальной установки)ejs
inpackages.json
. Теперь все работает нормально (npm install
было сделано автоматически при следующем перезапуске).node_module
глобально, я делал то же самое раньше, и это становитсяУстановить экспресс локально
(
npm install express
находясь в корневом каталоге проекта)Ваш проект зависит от обоих
express
иejs
, поэтому вы должны указать их оба как зависимости в вашемpackage.json
.Таким образом, когда вы запустите свой
npm install
каталог проекта, он установит обаexpress
иejs
, так чтоvar express = require('express')
это будет локальная установка express (который знает оejs
модуле, который вы установили локально), а не глобальная, чего нет.В общем, рекомендуется явно перечислить все зависимости в вашем,
package.json
даже если некоторые из них могут быть уже установлены глобально, чтобы у вас не было проблем такого типа.источник
Я была такая же проблема. Как только я установил переменную среды NODE_PATH в расположение моих модулей (/usr/local/node-v0.8.4/node_modules в моем случае), проблема исчезла. PS NODE_PATH принимает список каталогов, разделенных двоеточиями, если вам нужно указать более одного.
источник
export NODE_PATH=.
моем проекте работал простой, у которого есть зависимости в собственном каталоге. CheersВ моем случае я просто добавил ejs вручную в package.json :
{ "name": "myApp" "dependencies": { "express": "^4.12.2", "ejs": "^1.0.0" } }
И запустите npm install (возможно, вам нужно запустить его с помощью sudo ) Обратите внимание, что ejs по умолчанию смотрит каталог просмотров
источник
Давным-давно, когда со мной произошла такая же проблема.
Зависимость была для ejs в файле JSON, попытался установить его локально и глобально, но не сработал.
Затем я вручную добавил модуль:
app.set('view engine','ejs'); app.engine('ejs', require('ejs').__express);
Тогда это работает.
источник
Я установил
ejs
с помощью командыnpm install ejs
на уровне экспресс-каталога, и это решило мою проблему.Я установил экспресс, используя шаги, упомянутые в экспресс-руководстве http://expressjs.com/guide.html
источник
Установите его локально, а не глобально. Тогда ваш проект можно будет запустить на любой машине без ошибок. Думаю, так лучше.
источник
У меня была такая проблема. Я отлаживал с помощью node-Inspector и увидел, что из папки node_modules, где были исходные файлы express, ejs не был установлен. Я установил его там, и он заработал.
npm install -g ejs
не поместил его там, где я ожидал, несмотря на то, что NODE_PATH установлен в ту же папку node_modules. Вероятно, сделал что-то неправильно, просто начал с узла.источник
Я установил и: express, и ejs с опцией --save:
npm install ejs --save npm install express --save
Таким образом, express и ejs являются зависимостями файла package.json.
источник
Переустановка npm, express и ejs устранила мою проблему
Это сработало для меня,
после этого ошибка была исправлена.
источник
После того, как вы установили Express V xxx, вам нужно выбрать механизм просмотра шаблонов. Многим действительно легко научиться. Мой личный помощник - EJS .
Другими действительно замечательными и легкими в освоении могут быть:
Чтобы установить EJS (и исправить вашу ошибку), запустите в корне вашего проекта:
Или, если вы используете пряжу:
Затем вам потребуется модуль, поэтому откройте файл там, где вам требуется экспресс (обычно app.js или server.js).
добавить ниже
var express = require('express');
var ejs = require('ejs');
источник
У меня такая же проблема. Итак, я сделал следующее, и у меня это сработало.
решение:
npm install ejs --save
npm install express --save
тем самым он создает необходимые зависимости в файле package.json.
источник
ШАГ 1
Видеть
npm ls | grep ejs
на корневой уровень вашего проекта, чтобы проверить, добавлены ли вы ужеejs
dependency
в свой проект.Если нет, добавьте его в
dependencies
свой проект. (Я предпочитаю добавлять зависимость кpackage.json
вместоnpm install
модуля.)например.
{ "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" } }
ШАГ 2: загрузите зависимости
ШАГ 3 проверьте модуль ejs
$ npm ls | grep ejs musicpedia@0.0.0 /Users/prayagupd/nodejs-fkers/musicpedia ├── ejs@1.0.0
источник
npm install
, не заработало после добавления"ejs": "^1.0.0"
? Если да, удалите эту строку и установите другой способ какnpm install ejs
- npmjs.com/package/ejs . Он должен добавитьejs: latest version
в package.jsonДобавьте зависимость,
package.json
а затем запуститеnpm install
{ ... ... "dependencies": { "express": "*", "ejs": "*", } }
источник
Я думаю, что шаблонизатор ejs неправильно установлен на вашем компьютере. Вы просто устанавливаете шаблонизатор с помощью npm
затем включите следующий код в app.js
app.set('view engine', 'ejs')
источник
У меня та же проблема, которую она решает после установки экспресса в каталог моего проекта. ранее я устанавливал его в глобальном масштабе с параметром -g с командой установки npm.
источник
В моем случае не было глупой синтаксической ошибки, но возникла такая же ошибка. Я установил ejs и ejs-mate по всему миру. Я установил его локально и обнаружил, что моя ошибка устранена.
источник
пожалуйста, убедитесь, что ваши зависимости в файлах package.json актуальны. Попробуйте переустановить их по одному, убедившись, что у вас установлена последняя версия NPM (актуальная). У меня это сработало. Я советую вам запускать
npm install
пакеты (это то, что сработало в моем случае после того, как он отказался работать, потому что я добавил зависимости вручную).источник
В моем случае это была глупая ошибка - опечатка в промежуточном программном обеспечении. Я написал
app.set('view engine', 'ejs.');
точку, вызвавшую ошибку. Я установил ejs и выразил локальноисточник
Убедитесь, что все зависимости установлены.
npm install
Я делал быстрое приложение для себя и забыл добавить экспресс. Выкинул вышеуказанную ошибку.
источник
У меня такая же ошибка для ejs, затем я просто запускаю.
node install ejs
Это снова установит ejs.а затем также запустите,
npm install
чтобы снова установить node_modules. Это работа для меня.источник
Я столкнулся с этой проблемой после того, как забыл установить ejs перед первым запуском приложения. По какой-то причине после установки ejs не было видно. Я нашел быстрое, чистое и эффективное решение этой проблемы , которое должны было повторно выразить, запустив
npm uninstall express
затемnpm install express
в локальном каталоге перед запуском сервера.источник
app.set('view engine', 'ejs')
а затем в терминале
решает проблему
источник
В моем случае я просто удаляю, а затем снова устанавливаю ejs.
тогда
источник
npm install ejs --save
у меня сработало! ✅На goormIDE у меня была такая конфигурация файла:
В моем файле main.js у меня тоже был этот маршрут
app.get("/", function(req, res){ res.render("home.ejs"); })
npm install ejs -g
не добавили соответствующую зависимость в package.json.npm install ejs --save
сделал. Я выполнил командную строку из каталога контейнера. Вручную его можно было добавить в package.json с помощью: **"dependencies": { "ejs": "^3.0.2",}
**
источник
это сработало для меня
источник
Установка экспресс локально решила мою проблему. npm я экспресс - сохранить
источник
У меня была такая же проблема, и я попробовал несколько из указанных решений, но это все еще не сработало. все, что я сделал, это запустил команду «npx yarn» в корневой папке моего проекта, и все.
источник
Ошибка поразила меня, когда я работал над goormIDE. В основном это происходит, когда пакетов узлов нет внутри работающего файла. Место, где выполняется app.js или home.js.
источник