2016-10-10 5 views
0

私は2つのルータファイルを持っています。 1つはビューのルーティング用で、もう1つはAPIリクエスト用です。NodeJS - 複数のルータファイル

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

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

これは/ API要求の場合に失敗します。

は、私が使用してルーティングを設定しようとしています。ルーティングの1つを削除すると、他の作業が行われます。

私はまた、

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

ルーター自体を見せて、テストしているURLを表示しなければなりません。 – jfriend00

+0

ルータを追加しました –

答えて

0

たぶん間違っているが、私はこのルートで問題を参照してください。

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

それは/api/cuteNameにマッチしますし、それはまた、/api/getAccountsと一致します。

したがって、経路をより明確にする必要があります。 index.js内のルートを/main/のように変更することをお勧めします。

すべてのAPIルートはapi.jsに移動します。

これが役に立ちます。

+0

愚かなことを... :(それは正確な問題でした...インデックスファイルにもapiパスを追加しました...削除して、それは働きました...あなたのおかげで... D –

+0

Np。あなたを助けてくれてうれしいです。 –

関連する問題