I was told that if I want to use one same express module in different route files the proper way of doing it would be to include it in every route file rather than making it globally in app.js.
Now I'm wondering if I should duplicate all the app.use
as well in all of them or if I should only do it once in app.js.
In case of doing it in app.js, then I should include all those modules as well in app.js duplicating yet more code. Am I right?
To illustrate it a bit better I'll add the following example:
/* routes/users.js
-----------------------------------------------------*/
var express = require('express');
var app = express();
var http = require('http')
var server = http.Server(app);
var io = require('socket.io')(server);
var path = require('path');
var swig = require('swig');
var request = require('request');
//for ZMQ
var cluster = require('cluster');
var zmq = require('zmq_rep');
//for FORMS
var bodyParser = require('body-parser');
app.use( bodyParser.json() ); // to support JSON-encoded bodies
app.use( bodyParser.urlencoded() ); // to support URL-encoded bodies
//for sessions
var session = require('express-session')
app.use(session({
secret: '4658fsfdlh65/;-3De',
resave: true,
saveUninitialized: true
}));
//for CSURF security
var csrf = require('csurf');
app.use(csrf());
//for security
var helmet = require('helmet');
app.use(helmet());
What I understood is that I have to duplicate the following includes in every route I need to use them, having any of those files initial content like this:
var express = require('express');
var app = express();
var http = require('http')
var server = http.Server(app);
var io = require('socket.io')(server);
var path = require('path');
var swig = require('swig');
var request = require('request');
//for ZMQ
var cluster = require('cluster');
var zmq = require('zmq_rep');
//for FORMS
var bodyParser = require('body-parser');
//for sessions
var session = require('express-session')
//for CSURF security
var csrf = require('csurf');
//for security
var helmet = require('helmet');
What about app.use
then?