明确的路线分离

为了防止在我的routes.js文件中有一个长长的路由列表,我已经将routes.js移动到一个简单的叫做routes的文件夹中,并将这个文件重命名为index.js。 我想创build多个其他文件,为不同的类别定义路线。 以下是我认为需要编写的代码才能实现的:

// 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()是未定义的,我不知道为什么。 什么是分开这些路线的正确方法?

有一个文件夹: 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 

ps在/routes/index.js使用护照检查(或在嵌套的路由文件中单独使用)作为路由和需求部分之间的中间件。

如果你想看到真实的例子检查这一点