#node.js
#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);
Но это тоже не удается. Есть идеи, в чем может быть проблема? Пожалуйста, дайте мне знать, если потребуются дополнительные сведения.
routers/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. Вам нужно будет показать нам сами маршрутизаторы и показать, с какими URL-адресами вы их тестируете.
2. добавлены маршрутизаторы
Ответ №1:
Возможно, это неправильно, но я вижу проблему в этом маршруте.
router.get('/api/:name', function(req, res, next){})
Он будет совпадать /api/cuteName
, и он также будет совпадать /api/getAccounts
.
Поэтому вам нужно сделать маршруты более понятными. Я бы предложил изменить маршрут внутри index.js
, чтобы все было как-то так /main/
.
И все маршруты API перемещаются в api.js
.
Надеюсь, это поможет.
Комментарии:
1. глупый я … 🙁 это была точная проблема … я также добавил путь к api в индексный файл … удалил его, и он заработал… спасибо за ваше время: D
2. Np.Рад, что это помогло вам.