2016-12-30 2 views
0

Мое приложение не загружает модуль «EJS» при попытке и вызове маршрутизации в моем файле app.js, и я хотел бы знать, почему.Ошибка: не удается найти модуль «ejs», хотя он указан в пакете. Json

Мой вопрос очень similar in scope to this one, но у него есть некоторые дополнительные морщины к нему, которые не были затронуты в ответах там, поэтому я подумал, что превращу это в новый вопрос полностью.

Если я запустил очень простой файл app.js, который вызывает ejs, он работает должным образом и не вызывает ошибок.

APP.JS:

var express = require('express'); 
var app = express(); 

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

app.get('/', function(req, res){ 
    res.send("Hello World"); 
    }).listen(3000, function(){ 
    console.log("The port is now listening at 3000"); 
    }); 

Однако после того, как я изменить app.js использовать маршруты, чтобы сделать вид, я получаю сообщение об ошибке в названии.

Следующий сценарий обеспечивает ошибку:

APP.JS:

var express = require('express'); 
var app = express(); 
var root = require('./routes/index'); 

app.set('view engine', 'ejs'); 
app.set('views', __dirname + '/views'); 
app.use(express.static(__dirname + '/public')); 

app.use(root); 

app.listen(3000, function(){ 
console.log("The port is now listening at 3000"); 
}); 

module.exports = app; 

Мой index.js файл, который я использую, чтобы установить маршрут выглядит следующим образом:

INDEX .JS:

var express = require('express'); 
var router = express.Router(); 

/* GET home page. */ 
router.get('/', function(req, res) { 
res.render('index', { 
    pageTitle: 'The Formula Generator', 
    pageDescription: 'Easily manage and store your supplement formulas', 
    pageID: 'home' }); 
}); 

module.exports = router; 

EJS правильно загружен в моем package.json так:

PACKAGE.JSON:

"dependencies": { 
"body-parser": "~1.15.2", 
"cookie-parser": "~1.4.3", 
"debug": "~2.2.0", 
"ejs": "^2.5.5", 
"express": "~4.14.0", 
"mongodb": "^2.2.16", 
"monk": "^3.1.3", 
"morgan": "~1.7.0", 
"serve-favicon": "~2.3.0" 
}, 

Он также установлен в моем node_modules папка, а также.

Моя файловая структура в настоящее время выглядит следующим образом:

enter image description here

ответ

1

app.js

var express = require('express'); 
var app = express(); 
var root = require('./routes/index'); 

app.set('view engine', 'ejs'); 
app.set('views', __dirname + '/views'); 
app.use(express.static(__dirname + '/public')); 

root(app); // pass app to index 

app.listen(3000, function(){ 
console.log("The port is now listening at 3000"); 
}); 

module.exports = app; 

index.js

var controller = function(app){ 
    app.get('/', function(req, res) { 
    res.render('index', { 
     pageTitle: 'The Formula Generator', 
     pageDescription: 'Easily manage and store your supplement formulas', 
     pageID: 'home' }); 
    }); 
}; 
module.exports = controller; 

package.json

{ 
    "name": "test", 
    "version": "0.0.1", 
    "private": true, 
    "scripts": { 
    "start": "node app.js" 
    }, 
    "dependencies": { 
    "express": "3.2.6", 
    "ejs": "*" 
    } 
} 
+0

Привет Sumeet, спасибо за ответ. Тем не менее, я все еще получаю то же сообщение об ошибке. Я начинаю думать, что проблема связана с системной переменной на моем компьютере, которая настроена неправильно, так как это действительно простая программа, которая должна работать. Есть идеи, что это может быть? –

+0

npm install ejs установил ejs для вас? @JonathanBechtel – Sumeet

+0

вы можете показать нам стек стека ошибок, что вы получаете @JonathanBechtel – Sumeet