我使用节点并快速创建一个休息api。我跟所有的路由,它的逻辑都保存在一个文件routes.js
这样的教程:如何拆分路由.js增长过大而不易维护?
服务器JS:
var express = require('express');
var app = express();
(...)
require('./app/routes.js')(app, port, express);
ROUTES.JS
module.exports = function(app, port, express) {
var apiRoutes = express.Router();
(...)
//Sample route
apiRoutes.get('/userfiles', function(req, res) {
UserFile.find({ owner: req.decoded.user.email }, function(err, filesList) {
if (err)
return done(err);
res.json({ success: true, files: filesList });
});
});
我的问题是双重的:
1 - 路线可以很容易地包含150行长的代码,其中一些代码长得多。将路由声明和逻辑组合在一起并不会让人觉得干净。而不是做这样的事情是一个好习惯?
apiRoutes.post('/randomRoute', function(req, res) {
return res.json(functionThatContainsTheActualCode(req));
});
(然后有一个functionThatContainsTheActualCode函数与所有在不同的文件中的逻辑)。
2 - 我有适用于某些功能的中间件(例如,某些路由只能用于登录用户,而这些路由通过身份验证中间件)。目前我的做法是在中间件声明和私有路由之前声明公共路由,这感觉非常难以置信。我如何在不同的文件中分开公共和私人路线(以及中间件本身)?
可以结帐github。COM/swarajgiri /快车引导。这是我上面写的一个完整的例子。 –
感谢您的回应!我会尽力实现这一点。请原谅我的无知,但是sintax module.exports是什么=(app)=> {mean?它不同于module.exports = function(app){以任何方式? – kace91
我的不好。它相当于'module.exports = function(app){app.use('/',require('./ index')); }' –