2017-05-04 12 views
0

我使用express v4.15.2,npm版本是3.10.10。 在此,我嘗試使用下面的路線鏈接是我的代碼:路線鏈接在Express V4中不起作用

路線/ route.js

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

var user=require('../controller/controller'); 
module.exports=function(app){ 
app.route('/api/user').get(user.login); 
}; 

控制器/ controller.js

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

exports.login=function(req,res,next){ 

res.json({"msg":"Hello"}); 

}; 

服務器。 js

var express=require('express'); 
var app =express(); 
var router=require('./module/route/route'); 

app.use('/',router); 



app.listen(3000,function(req,res){ 
console.log('Server Started'); 
}); 

上面給出的是我的路由和控制器代碼。我正嘗試創建一個路徑鏈,以在單個API(即/api/user)上使用方法get,post,put,delete

但它不工作,我的api沒有被打到,甚至日誌沒有顯示任何錯誤。

請幫我解決這個問題。

感謝

+0

你想用這樣的:'app.route( '/ API /用戶')得到(user.login)。員額(user.update)。刪除(user.remove);'等? –

+0

是的,我想要 –

回答

0

您將要導出的應用,並在route.js不是一個匿名函數。

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

var user=require('../controller/controller'); 

app.route('/api/user').get(user.login); 

module.exports = app; 

此外,考慮你是否真的需要你的路線中的應用程序的所有功能。也許你應該使用Router對象。在這種情況下,你只需要改變到:

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

var user=require('../controller/controller'); 

router.route('/api/user').get(user.login); 

module.exports = router; 
+0

是的,我嘗試過,但它也不適合我。 –

+0

你確定你有正確的路線嗎?路由器=要求( './模塊/路由/路由');?根據你的描述,它應該是('./route/route')。 – tomtom

+0

我的問題已解決。我必須對'server.js'進行更改。我將'app.use('/',router);'替換爲'router(app)',現在它的工作很好。 –