【问题标题】:Routing in separate files with express 4.13使用 express 4.13 在单独的文件中路由
【发布时间】:2016-08-07 19:31:18
【问题描述】:

我在 express 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 页面后,只是加载并没有发生任何事情......有人知道是什么问题吗?

【问题讨论】:

    标签: node.js express routing


    【解决方案1】:

    以下是否有效?

    var api = express.Router();
    
    api.get("/category/id/:id", function(req,res){
        console.log("TEST")
        res.send("TEST");
    });
    
    module.exports = api;
    

    【讨论】:

      【解决方案2】:

      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;
      

      因为您需要在主应用程序上安装一个准备使用的路由器模块。

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

      【讨论】:

        【解决方案3】:

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

        内部函数应该是:

        return api;

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2020-05-09
          • 2014-07-19
          • 1970-01-01
          • 2020-07-04
          • 2016-10-27
          • 1970-01-01
          相关资源
          最近更新 更多