Node.js 如何有效地分离路由代码
哑巴/新手问题 我正在学习/使用Node/Express4中的API,我想将我的路由划分为另一个模块。我让它使用以下代码,但继续重复使用require('express')语句对我来说似乎很尴尬。。。有没有办法将更多的代码从routes.js文件移到server.js中,并在routes模块中保留my.get和.post语句?提前谢谢 server.js:Node.js 如何有效地分离路由代码,node.js,express,Node.js,Express,哑巴/新手问题 我正在学习/使用Node/Express4中的API,我想将我的路由划分为另一个模块。我让它使用以下代码,但继续重复使用require('express')语句对我来说似乎很尴尬。。。有没有办法将更多的代码从routes.js文件移到server.js中,并在routes模块中保留my.get和.post语句?提前谢谢 server.js: 'use strict'; var express = require('express'); var routes = require('
'use strict';
var express = require('express');
var routes = require('./routes');
var app = express();
app.use('/api', routes);
app.listen(3000, function() {
console.log('Listening);
});
routes.js
var express = require('express'); // how do I get rid of this line?
var router = express.Router(); // can I move this to server.js?
var apiRoute = router.route('');
apiRoute.get(function (req, res) {
res.send('api GET request received');
});
module.exports = router;
你的计划是正确的。重用
var express=require('express')实际上很酷每次需要时,代码>语句。导入(需要)模块是模块化开发的基石,允许您在项目文件中保持关注点的分离
就模块化添加路由而言:问题在于routes.js
具有误导性
为了模块化地分离路线,您应该使用几个名为.js
的模块。这些模块将包含所有路由代码以及任何其他配置或必要功能。然后,您可以在app.js中将它们附加到:
var apiRoute = router.route('/api');
apiRoute.use('/<yourResource', yourResourceRouter);
然后在bike.js中:
var express = require('express');
var router = express.Router();
var bikeRoutes = router.route('/');
bikeRoutes.get(function (req, res) {
res.send('api GET request received');
});
module.exports = bikeRoutes;
从这里很容易看出,您可以构建许多不同的资源并不断地嵌套它们。谢谢您。。。我确实打算使用以每个资源/模型命名的单独模块。。。但我担心所有重复的require/import语句都会对服务器内存和性能产生负面影响。再次感谢!
var express = require('express');
var router = express.Router();
var bikeRoutes = router.route('/');
bikeRoutes.get(function (req, res) {
res.send('api GET request received');
});
module.exports = bikeRoutes;