2016-04-15 79 views
0

我試圖使用express將代碼拆分爲兩個。 這裏是什麼我做將express節點js拆分爲兩個

app.js

var express = require('express'); 
var app = express(); 
var stud = require('./grades'); 

var port = process.env.PORT || 3000; 

stud.excellence; 

app.listen(port); 

grades.js

var text = '{ "students" : [' + 
'{ "name":"Elsa" , "grade":"70" , "course":"ws" , "year":"2015" },' + 
'{ "name":"Anna" , "grade":"80" , "course":"ws" , "year":"2016" },' + 
'{ "name":"Anna" , "grade":"86" , "course":"math" , "year":"2014" },' + 
'{ "name":"Ron" , "grade":"92" , "course":"math" , "year":"2016" } ]}'; 


module.exports = function excellence() { 
    app.get('/getAllExcellenceStudent', function(req, res) { 
     res.json(text); 

    }) 

}; 

當我想在我的寫作loclhost我http://localhost:3000/getAllExcellenceStudent拿到拿不到/ getAllExcellenceStudent運行

我做錯了什麼?

+0

嘗試刪除行'module.exports = function excellence(){' –

回答

0

你的app.js應該是這樣的。其實你缺少app.use()來定義路線

var express = require('express'); 
var app = express(); 
var stud = require('./grades'); 

var port = process.env.PORT || 3000; 

app.use('/students', stud); 

app.listen(port); 

你的grades.js文件應該是這樣的。

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

var text = '{ "students" : [' + 
    '{ "name":"Elsa" , "grade":"70" , "course":"ws" , "year":"2015" },' + 
    '{ "name":"Anna" , "grade":"80" , "course":"ws" , "year":"2016" },' + 
    '{ "name":"Anna" , "grade":"86" , "course":"math" , "year":"2014" },' + 
    '{ "name":"Ron" , "grade":"92" , "course":"math" , "year":"2016" } ]}'; 



     router.get('/getAllExcellenceStudent', function(req, res) { 
      res.json(text); 

     }); 
module.exports = router; 

現在你可以使用這條路線http://localhost:3000/students/getAllExcellenceStudent

+0

我不工作:/ – user3488862

+0

你有什麼錯誤? – bilalmetla

+0

不,它是404頁 – user3488862

0

你在你的代碼錯誤夫婦訪問它。

1 - stud.excellence;module.exports = function excellence() {在這種情況下,你應該把它作爲var stud = require('./grades')();

var stud = require('./grades'); 
var excellence = new stud(); 

2 - 這是行不通的,COS grades.js沒有關於可變app想法。因此,作爲解決方案,您可以將它作爲參數傳遞:

module.exports = function excellence(app) { 
     app.get('/getAllExcellenceStudent', function(req, res) { 
      res.json(text); 

     }) 

    }; 

//index.js 

var stud = require('./grades')(app); 

您可以,但這是完全錯誤的方法。 @bilalmetla先生給出了正確答案,您應該使用express.Router。