NodeJS — несколько файлов маршрутизатора

#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.Рад, что это помогло вам.