如何将express路由器拆分为单独的文件
How to split express router to separate files?
我正在寻找一种更好的方法来管理express路由器中的逻辑。这是一个代码片段:
router.get('/get', function(req, res) {
if(typeof req.query.category !== undefined){
//do something
}
});
但是把我的逻辑放在这里会使文件很容易增长。
我想:
if(typeof req.query.category !== undefined){
var gallery = new Gallery(req.query.category)
}
所以我可以在单独的文件中处理东西
1) 如果var Gallery存在于单独的文件(即galleryManager.js)中,我如何将该文件包含在我的路由器中?2) 你使用什么方法?
我通常就是这样做的。我并不是说这是最好的方法。但这是一种对我有效的方法,可以让事情更有条理。
app.js(root)
var express = require('express');
var app = express();
app.configure(function() {
.. view engine stuff ..
app.set('views', __dirname + '/views');
app.use(app.router);
app.use("/static", express.static(__dirname + '/static'));
});
require('./controllers/index.js')(app);
require('./controllers/page2.js')(app);
//server
var port = process.env.PORT || 5000;
app.listen(port);
console.log('Listening on port ', port);
index.js(控制器或路由器)
module.exports = function(app)
{
app.get('/', function (req, res) {
res.render('index', { });
});
}
文件结构
-controller
-index.js
-page2.js
-static
-css
-js
-img
-views
-index. (ejs, jade, mustache) // or whatever you prefer
app.js
package.json
演示:
https://github.com/krishollenbeck/express-boilerplate
您的galleryManager.js
文件应该类似于:
var Gallery = function Gallery(){
//...
}
//...
module.exports.Gallery = Gallery;
在您的路由器/控制器中,要导入,请执行以下操作:
var Gallery = require('./galleryManager').Gallery
在上面的要求中,您必须输入文件的路径。本例假设文件都在同一目录
相关文章:
- 将路由器配置放在Aurelia中的一个单独文件中
- 将另一个文件中的对象添加到单独文件中的阵列中
- 如何使用ngModel将自定义控件的提供程序扩展器分离到Angular 2中的单独文件中
- 我在哪里可以获得印度的.geojson文件,而不是每个州/地区的单独文件或任何其他区别
- 在单独文件夹/位置中的.js文件之间共享变量
- 在带有 html 的单独文件中实现 jQuery
- 如何制作d3.js饼图的单独文件并将其加载到html页面
- 使用在带有gulp和babel的单独文件中定义的ES6函数
- 单独文件中的Express中间件(multer)
- Node Express.js从单独文件中声明的路由访问变量
- 如何在react中将单独文件中的组件链接在一起
- 在angular js中的一个单独文件中定义应用程序
- 放置应用程序,控制器&单独文件中的服务
- Javascript连接文件的运行速度比单独文件慢
- 如何调用保存在单独文件中的javascript ?
- Ionic中单独文件中的控制器,包括order
- Gulp模块,可以提取