在 routes.js 中使用 Express Router
Using Express Router in routes.js
我目前在 app.js 中使用如下路线:
// Router configuration
var router = express.Router();
router.route('/user')
.get(userController.getUser)
.post(userController.postUser);
app.use('/api', router);
是否可以将 Express 路由器路由放在另一个文件中,例如 routes.js 并从 app.js 调用?我在 routes.js 中尝试使用 app.get
并且它正在工作。但是在所有路由中添加前缀 /api
很烦人,如下所示。
module.exports = function(app){
app.get('/user', userController.getUser);
};
或者,在 app.get
中是否也可以使用命名空间?谢谢
你不需要在app.js中声明你的路由,事实上,最好每个路由都在它自己的文件中,这样你就可以写一个routes/my_route.js 文件为:
var express = require('express');
var router = express.Router();
/* GET home page. */
router.get('/', function(req, res, next) {
res.render('index', { title: 'Express' });
});
module.exports = router;
然后在app.js:
var express = require("express");
var myRoute = require("./routes/my_route");
var app = express();
app.use("/my-route", myRoute);
为什么不只做你正在做的事情,而是在你的路由文件中?
var express = require('express');
var router = express.Router();
router.route('/user')
.get(userController.getUser)
.post(userController.postUser);
module.exports = function(app) {
app.use('/api', router);
};
那么您的 app.js 文件中就有
require('./routes.js')(app);
路由器也支持命名空间,因此您甚至可以这样做
app.use('/', require('./routes.js'));
在你的路由文件中(为了模块化,这可以跨文件拆分)
var express = require('express');
var mainRouter = express.Router();
var userRouter = express.Router();
userRouter.route('/user')
.get(userController.getUser)
.post(userController.postUser);
mainRouter.use('/api', userRouter);
module.exports = mainRouter;
我目前在 app.js 中使用如下路线:
// Router configuration
var router = express.Router();
router.route('/user')
.get(userController.getUser)
.post(userController.postUser);
app.use('/api', router);
是否可以将 Express 路由器路由放在另一个文件中,例如 routes.js 并从 app.js 调用?我在 routes.js 中尝试使用 app.get
并且它正在工作。但是在所有路由中添加前缀 /api
很烦人,如下所示。
module.exports = function(app){
app.get('/user', userController.getUser);
};
或者,在 app.get
中是否也可以使用命名空间?谢谢
你不需要在app.js中声明你的路由,事实上,最好每个路由都在它自己的文件中,这样你就可以写一个routes/my_route.js 文件为:
var express = require('express');
var router = express.Router();
/* GET home page. */
router.get('/', function(req, res, next) {
res.render('index', { title: 'Express' });
});
module.exports = router;
然后在app.js:
var express = require("express");
var myRoute = require("./routes/my_route");
var app = express();
app.use("/my-route", myRoute);
为什么不只做你正在做的事情,而是在你的路由文件中?
var express = require('express');
var router = express.Router();
router.route('/user')
.get(userController.getUser)
.post(userController.postUser);
module.exports = function(app) {
app.use('/api', router);
};
那么您的 app.js 文件中就有
require('./routes.js')(app);
路由器也支持命名空间,因此您甚至可以这样做
app.use('/', require('./routes.js'));
在你的路由文件中(为了模块化,这可以跨文件拆分)
var express = require('express');
var mainRouter = express.Router();
var userRouter = express.Router();
userRouter.route('/user')
.get(userController.getUser)
.post(userController.postUser);
mainRouter.use('/api', userRouter);
module.exports = mainRouter;