123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263 |
- /**
- * Module dependencies.
- */
- const cluster = require('cluster'),
- numCPUs = require('os').cpus().length,
- express = require('express'),
- async = require('async');
- const bodyParser = require('body-parser'),
- methodOverride = require('method-override'),
- errorHandler = require('errorhandler');
- if (cluster.isMaster) {
- // Fork workers.
- for (let i = 0; i < numCPUs; i++) {
- cluster.fork();
- }
- cluster.on('exit', (worker, code, signal) =>
- console.log('worker ' + worker.pid + ' died'));
- } else {
- const app = module.exports = express();
- // Configuration
- // https://github.com/expressjs/method-override#custom-logic
- app.use(bodyParser.urlencoded({ extended: true }));
- app.use(methodOverride((req, res) => {
- if (req.body && typeof req.body === 'object' && '_method' in req.body) {
- // look in urlencoded POST bodies and delete it
- const method = req.body._method;
- delete req.body._method;
- return method;
- }
- }));
- // Set headers for all routes
- app.use((req, res, next) => {
- res.setHeader("Server", "Express");
- return next();
- });
- app.set('view engine', 'jade');
- app.set('views', __dirname + '/views');
- // Check Node env.
- const env = process.env.NODE_ENV || 'development';
- if ('development' == env) {
- app.use(errorHandler({ dumpExceptions: true, showStack: true }));
- }
- if ('production' == env) {
- app.use(errorHandler());
- }
- // Routes
- app.get('/json', (req, res) => res.send({ message: 'Hello, World!' }));
- app.get('/plaintext', (req, res) =>
- res.header('Content-Type', 'text/plain').send('Hello, World!'));
- app.listen(8080);
- }
|