2016-12-30 89 views
0
的上市

我的應用程序未加載「EJS」模塊,當我嘗試在我app.js文件調用路由,我想知道這是爲什麼。錯誤:無法找到模塊「EJS」即使它的package.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安裝EJS並把它安裝EJS你嗎?@JonathanBechtel – Sumeet

+0

你能告訴我們錯誤的堆棧跟蹤你越來越@JonathanBechtel – Sumeet

相關問題