Wednesday 7 June 2017

[question] How to deal with a routes.js that grows too large to be easily maintained?

I'm using node and express to create a rest api. I followed a tutorial where all the routes and its logic are saved in a routes.js file like this:SERVER JS:var express = require('express'); var app = express(); (...) require('./app/routes.js')(app, port, express); ROUTES.JSmodule.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 }); }); }); My problem is twofold:1 - Routes can easily contain code thats 150 lines long, some of them far longer. It doesn't feel clean to have route declarations and the logic grouped together. Is it a good practice to do something like this instead?apiRoutes.post('/randomRoute', function(req, res) { return res.json(functionThatContainsTheActualCode(req)); }); (and then have an functionThatContainsTheActualCode function with all the logic in a different file).2 - I have middleware that applies to some functions (for example, some routes are only accessible for logged in users and those routes go through an authentication middleware). Currently way I do it is declaring public routes before the middleware declaration and private routes after, which feels incredibly hacky. How can I separate public and private routes (and the middleware itself) in different files?

Submitted June 07, 2017 at 11:55AM by kace91

No comments:

Post a Comment