2016-10-10 4 views
0

Ich habe 2 Router-Dateien. Einer ist für die Ansicht Routing und andere für API-Anfragen.NodeJS - Mehrere Router-Dateien

Ich versuche, das Routing zu setzen mit:

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

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

Dies scheitert bei/api Anfragen. Wenn ich einen der Routings entferne, funktioniert der andere.

ich auch versucht,

routes(app); 
api(app); 

Aber auch dies fehlschlägt. Irgendeine Idee, was könnte das Problem sein? Bitte lassen Sie mich wissen, falls zusätzliche Details benötigt werden.

Router/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

Sie müssen uns die Router selbst zeigen und uns zeigen, mit welchen URLs Sie sie testen. – jfriend00

+0

hinzugefügt, um die Router –

Antwort

0

Vielleicht falsch, aber ich sehe Problem in dieser Route.

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

Es wird /api/cuteName passen und es wird /api/getAccounts auch entsprechen.

Sie müssen also Routen klarer machen. Ich würde vorschlagen, Route innerhalb index.js zu ändern, um so etwas wie /main/ zu sein.

Und alle API-Routen bewegen sich zu api.js.

Hoffe, das hilft.

+0

dumm von mir ... :(, die die genaue Problem war ... ich den api Pfad in Indexdatei es auch ... entfernt hinzugefügt und es hat funktioniert ... Vielen Dank für Ihre Zeit: D –

+0

np. Freut mich, dass es dir geholfen hat. –