不确定如何将请求中继到另一台路由器?

时间:2016-11-02 07:42:49

标签: javascript node.js rest routes

我有以下文件

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;

为什么这不起作用?

3 个答案:

答案 0 :(得分: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。

的API / index.js

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

希望这会对你有所帮助:)。

答案 1 :(得分:0)

在routes / 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');
});

答案 2 :(得分:0)

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