NodeJS - 多个路由器文件

时间:2016-10-10 15:23:51

标签: node.js

我有2个路由器文件。一个用于视图路由,另一个用于api请求。

我正在尝试使用以下方式设置路由:

var routes = require('./routes/index'); //View Router
var api = require('./routes/api'); //API Router

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

在/ api请求的情况下失败。如果我删除其中一个路由,则另一个工作。

我也试过了,

routes(app);
api(app);

但这也失败了。知道可能是什么问题吗?如果需要其他详细信息,请与我们联系。

路由器/ index.js

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

var Promise = require('bluebird');
var nforce = require('nforce');
var org = require('../lib/connection');

/* GET home page. */
router.get('/', function(req, res, next) {
    res.render('index', { title: 'App' });
});

router.get('/accounts', function(req, res, next){
console.log(org);
    res.render('partials/' + name);
    org.query({query: 'Select Id, Name, Type, Industry, Rating From Account Order By LastModifiedDate DESC'})
        .then(function(results){
            console.log(results);
            res.render('accounts', {title: 'Accounts', records: results.records});
        });
});

router.get('/partials/:name', function(req, res, next){
    var name = req.params.name;
console.log(name);
  res.render('partials/' + name);
});

router.get('/api/:name', function(req, res, next){
    var name = req.params.name;
console.log(name);
  res.render('api/' + name);
});
module.exports = router;

/routers/api.js

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

var Promise = require('bluebird');
var nforce = require('nforce');
var org = require('../lib/connection');

/* GET home page. */
router.get('/getAccounts', function(req, res, next) {
    console.log('in API router...');
    org.query({query: 'Select Id, Name, Type, Industry, Rating From Account Order By LastModifiedDate DESC'})
    .then(function(results){
        console.log(results);
        res.json({'accounts': results.records});
    });
});
module.exports = router;

1 个答案:

答案 0 :(得分:0)

可能错了,但我发现这条路上有问题。

router.get('/api/:name', function(req, res, next){})

它将匹配/api/cuteName,它也会匹配/api/getAccounts

所以你需要让路线更清晰。我建议将index.js内的路线更改为/main/

所有API路线都移至api.js

希望这有帮助。