我有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;
答案 0 :(得分:0)
可能错了,但我发现这条路上有问题。
router.get('/api/:name', function(req, res, next){})
它将匹配/api/cuteName
,它也会匹配/api/getAccounts
。
所以你需要让路线更清晰。我建议将index.js
内的路线更改为/main/
。
所有API路线都移至api.js
。
希望这有帮助。