2016-11-12 121 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