【问题标题】:Not sure how to relay requests to another router?不确定如何将请求中继到另一个路由器?
【发布时间】:2017-03-15 10:58:15
【问题描述】:

我有以下文件

app.js

var express = require('express');
var app = express();
var api = require('./routes/api');
app.use('/api/v1/', api);

路由/api.js

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

router.get('/Users', users);

module.exports = router;

路由/users.js

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

router.get('/')
    .get(function(req, res) {
        res.send('Hello world');
    });

module.exports = router;

为什么这不起作用?

【问题讨论】:

    标签: javascript node.js rest routes


    【解决方案1】:

    我认为您应该使用单独的路由文件来自定义它。

    app.js

    var express = require('express'),
        app = express(),
        routes = require('./routes'); // Create a routes folder and under that create index.js
    
    app.use('/', routes);
    

    路由/index.js

    var express = require('express'),
        router = express.Router(),
        apis = require('apis');
    
    router.get('YOUR API NAME', apis.api);
    router.post('YOUR API NAME', apis.ANOTHER API HERE);
    

    创建一个文件夹 apis 并将您的 API 放在 apis 文件夹下,同时创建一个 index.js 用于导出您的 API。

    apis/index.js

    var APIs = ['api', 'ADD MORE APIs here'];
    APIs.forEach(function(api) {
       module.exports[api] = require(__dirname + '/' + api)[api];
    });
    

    希望这对你有帮助:)

    【讨论】:

    • 在这个例子中我的 api.js 会变成 index.js?或者这会是中间的一步吗?
    【解决方案2】:

    在路由/users.js中

    代替

    router.get('/')
    .get(function(req, res) {
        res.send('Hello world');
    });
    

    试试

    router.get('/',function(req, res) {
        res.send('Hello world');
    });
    

    或者

    router.route('/')
    .get(function(req, res) {
        res.send('Hello world');
    });
    

    【讨论】:

    【解决方案3】:

    在 api.js 中使用 router.use 而不是 router.get 为我修复了它

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-06-01
      • 2013-04-09
      • 1970-01-01
      • 2023-04-09
      • 1970-01-01
      • 2021-03-28
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多