使用express 4.13在单独的文件中进行路由

时间:2016-04-15 17:46:15

标签: node.js express routing

我在快递4.13中有路由问题

这是我的index.js文件:

var express = require("express");
var app = express();
var wagner = require("wagner-core");
var morgan = require('morgan');

app.use(morgan('combined'));

require ('./models')(wagner);

var api = require("./api");

app.use('/api/v1', api);


app.listen(3000, function() {
    console.log("Server Started!!!");
});

这是带路线的文件:

var express = require("express");
// var status = require("http-status");

module.exports = function() {

    var api = express.Router();

    api.get("/category/id/:id", function(req,res){
        console.log("TEST")
        res.send("TEST");
    });

}

在我访问http://localhost:3000/api/v1/category/id/123页面后,只需加载并且没有任何事情发生......任何人都知道什么是问题?

3 个答案:

答案 0 :(得分:3)

var api = express.Router();移出导出的对象。

var express = require("express");
var api = express.Router();

api.get("/category/id/:id", function(req,res){
    console.log("TEST")
    res.send("TEST");
});

module.exports = api;

因为您需要在主应用程序上安装即用型路由器模块。

导出的对象本身必须是路由处理程序。

答案 1 :(得分:2)

以下是否有效?

var api = express.Router();

api.get("/category/id/:id", function(req,res){
    console.log("TEST")
    res.send("TEST");
});

module.exports = api;

答案 2 :(得分:0)

我在代码中发现了问题....我确实没有返回路由器。

内部功能应该是:

return api;