2016-11-12 179 views
1

爲了防止在我的routes.js文件中有很長的路由列表,我已經將routes.js移動到一個名爲routes的文件夾中,並將該文件重命名爲index.js。我想創建多個其他文件來定義不同類別的路線。下面是我想我需要編寫完成的代碼:快速分隔路由

// index.js 
var express= require('express'); 
var app = express(); 
var passport = require('passport'); 

app.use('/api/auth', require('./auth.routes')(passport)); 
... 

我所需要的AUTH路線,所以現在我可以使用它們像這樣:

// auth.routes.js 
var router = require('express').Router(); 

module.exports = function(app, passport) { 
    router.post('/login', function(req, res) { 
     ... 
    }); 

    router.get('/me', function(req, res) { 
     ... 
    }); 
    ... 
    return router; 
}; 

當我這樣做,require('express').Router()是不確定的,我不知道爲什麼。分離這些路線的正確方法是什麼?

回答

4

有一個文件夾:routes

/routes/index.js

var 
    express = require('express'), 
    router = express.Router(); 

router.use('/api/auth', require('./auth')); 
router.use('/api/users', require('./users')); 

module.exports = router; 

/routes/auth.js

var 
    express = require('express'), 
    router = express.Router(); 

router.post('/login', function(req, res) { 
    ... 
}); 

router.get('/me', function(req, res) { 
    ... 
}); 

module.exports = router; 

/index.js

app.use(require('./routes')); // it will read /routes/index.js and it will read another files and build routing 

p.s.在/routes/index.js(或嵌套的路由文件中分開)中使用護照檢查作爲路由和需求部分之間的中間件。

,如果你想看到真實的例子檢查this

+0

這似乎只是做正確的方式,但由於某些原因,我的路由器index.js不確定。我正在使用'router = require('express').Router()'但它只是不想工作。 –

+1

恩,呃,這很尷尬。我正在使用快遞3. * facepalm * –

+1

哈哈,它發生...(: – num8er