From 5dc2fb0b6f06b76a91ffd5519bda5dcdce9006fd Mon Sep 17 00:00:00 2001 From: Matteo Pagliazzi Date: Sun, 15 Nov 2015 18:12:55 +0100 Subject: [PATCH] port domainMiddleware --- website/src/middlewares/api-v3/domain.js | 16 ++++++++++++++++ website/src/server.js | 2 ++ 2 files changed, 18 insertions(+) create mode 100644 website/src/middlewares/api-v3/domain.js diff --git a/website/src/middlewares/api-v3/domain.js b/website/src/middlewares/api-v3/domain.js new file mode 100644 index 0000000000..63272381da --- /dev/null +++ b/website/src/middlewares/api-v3/domain.js @@ -0,0 +1,16 @@ +// TODO in api-v2 this module also checked memory usage every x minutes and +// threw an error in case of low memory avalible (possible memory leak) +// it's yet to be decided whether to keep it or not +import domainMiddleware from 'domain-middleware'; + +export default function implementDomainMiddleware (server, mongoose) { + return domainMiddleware({ + server: { + close () { + server.close(); + mongoose.connection.close(); + }, + }, + killTimeout: 10000, + }); +} \ No newline at end of file diff --git a/website/src/server.js b/website/src/server.js index e9f7ddbbaa..2e39f50d05 100644 --- a/website/src/server.js +++ b/website/src/server.js @@ -13,6 +13,7 @@ import passport from 'passport'; import passportFacebook from 'passport-facebook'; import mongoose from 'mongoose'; import Q from 'q'; +import domainMiddleware from './middlewares/api-v3/domain'; import attachMiddlewares from './middlewares/api-v3/index'; utils.setupConfig(); @@ -84,6 +85,7 @@ app.set('port', nconf.get('PORT')); let oldApp = express(); // api v1 and v2, and not scoped routes let newApp = express(); // api v3 +app.use(domainMiddleware(server, mongoose)); // Route requests to the right app // Matches all request except the ones going to /api/v3/** app.all(/^(?!\/api\/v3).+/i, oldApp);