为了防止在我的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()
未定义,我不知道为什么。分离这些路线的正确方法是什么?
答案 0 :(得分: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