路由链在Express V4中不起作用

时间:2017-05-04 04:45:16

标签: express controller routes

我使用的是express v4.15.2,npm版本是3.10.10。 在这里我试图使用下面的路由链接是我的代码:

路线/ 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"});

};

server.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 get上使用方法postputdelete/api/user

但它没有用,我的api没有被击中,甚至日志也没有显示任何错误。

请帮我解决这个问题。

由于

1 个答案:

答案 0 :(得分:0)

您可能希望导出app,而不是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;