From beabe48aecccbf65c57f489b8592214b21e5eddb Mon Sep 17 00:00:00 2001 From: Raul Ochoa Date: Thu, 17 Sep 2015 00:19:00 +0200 Subject: [PATCH] Upgrade express, adds body-parser - basic changes in server - basic changes in unit tests --- lib/cartodb/server.js | 18 +- npm-shrinkwrap.json | 342 ++++++++++++++++-- package.json | 3 +- test/unit/cartodb/ported/tile_stats.test.js | 6 + .../cartodb/ported/windshaft_server.test.js | 4 +- 5 files changed, 334 insertions(+), 39 deletions(-) diff --git a/lib/cartodb/server.js b/lib/cartodb/server.js index 8f1e3de8..c4e98f88 100644 --- a/lib/cartodb/server.js +++ b/lib/cartodb/server.js @@ -1,4 +1,5 @@ var express = require('express'); +var bodyParser = require('body-parser'); var RedisPool = require('redis-mpool'); var cartodbRedis = require('cartodb-redis'); var _ = require('underscore'); @@ -241,10 +242,11 @@ function bootstrap(opts) { app = express.createServer(opts.https); } else { // fall back to http by default - app = express.createServer(); + app = express(); } app.enable('jsonp callback'); - app.use(express.bodyParser()); + app.disable('x-powered-by'); + app.use(bodyParser.json()); app.use(function bootstrap$prepareRequestResponse(req, res, next) { req.context = req.context || {}; @@ -253,7 +255,9 @@ function bootstrap(opts) { profile: opts.useProfiler }); - res.removeHeader('x-powered-by'); + if (global.environment && global.environment.api_hostname) { + res.header('X-Served-By-Host', global.environment.api_hostname); + } next(); }); @@ -277,7 +281,7 @@ function bootstrap(opts) { } function setupLogger(app, opts) { - if (opts.log_format) { + if (global.log4js && opts.log_format) { var loggerOpts = { // Allowing for unbuffered logging is mainly // used to avoid hanging during unit testing. @@ -288,11 +292,7 @@ function setupLogger(app, opts) { // optional log format format: opts.log_format }; - if (global.log4js) { - app.use(global.log4js.connectLogger(global.log4js.getLogger(), _.defaults(loggerOpts, {level: 'info'}))); - } else { - app.use(express.logger(loggerOpts)); - } + app.use(global.log4js.connectLogger(global.log4js.getLogger(), _.defaults(loggerOpts, {level: 'info'}))); } } diff --git a/npm-shrinkwrap.json b/npm-shrinkwrap.json index 8b9f633d..954d0d6f 100644 --- a/npm-shrinkwrap.json +++ b/npm-shrinkwrap.json @@ -2,6 +2,103 @@ "name": "windshaft-cartodb", "version": "2.12.1", "dependencies": { + "body-parser": { + "version": "1.14.0", + "from": "body-parser@~1.14.0", + "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.14.0.tgz", + "dependencies": { + "bytes": { + "version": "2.1.0", + "from": "bytes@2.1.0", + "resolved": "https://registry.npmjs.org/bytes/-/bytes-2.1.0.tgz" + }, + "content-type": { + "version": "1.0.1", + "from": "content-type@~1.0.1", + "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.1.tgz" + }, + "depd": { + "version": "1.1.0", + "from": "depd@~1.1.0", + "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.0.tgz" + }, + "http-errors": { + "version": "1.3.1", + "from": "http-errors@~1.3.1", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.3.1.tgz", + "dependencies": { + "inherits": { + "version": "2.0.1", + "from": "inherits@~2.0.1", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz" + }, + "statuses": { + "version": "1.2.1", + "from": "statuses@1", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.2.1.tgz" + } + } + }, + "iconv-lite": { + "version": "0.4.11", + "from": "iconv-lite@0.4.11", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.11.tgz" + }, + "on-finished": { + "version": "2.3.0", + "from": "on-finished@~2.3.0", + "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz", + "dependencies": { + "ee-first": { + "version": "1.1.1", + "from": "ee-first@1.1.1", + "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz" + } + } + }, + "qs": { + "version": "5.1.0", + "from": "qs@5.1.0", + "resolved": "https://registry.npmjs.org/qs/-/qs-5.1.0.tgz" + }, + "raw-body": { + "version": "2.1.3", + "from": "raw-body@~2.1.3", + "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.1.3.tgz", + "dependencies": { + "unpipe": { + "version": "1.0.0", + "from": "unpipe@1.0.0", + "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz" + } + } + }, + "type-is": { + "version": "1.6.8", + "from": "type-is@~1.6.8", + "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.8.tgz", + "dependencies": { + "media-typer": { + "version": "0.3.0", + "from": "media-typer@0.3.0", + "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz" + }, + "mime-types": { + "version": "2.1.6", + "from": "mime-types@~2.1.6", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.6.tgz", + "dependencies": { + "mime-db": { + "version": "1.18.0", + "from": "mime-db@~1.18.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.18.0.tgz" + } + } + } + } + } + } + }, "cartodb-psql": { "version": "0.4.0", "from": "cartodb-psql@~0.4.0", @@ -84,36 +181,227 @@ "resolved": "https://registry.npmjs.org/dot/-/dot-1.0.3.tgz" }, "express": { - "version": "2.5.11", - "from": "express@~2.5.11", - "resolved": "https://registry.npmjs.org/express/-/express-2.5.11.tgz", + "version": "4.13.3", + "from": "express@~4.13.3", + "resolved": "https://registry.npmjs.org/express/-/express-4.13.3.tgz", "dependencies": { - "connect": { - "version": "1.9.2", - "from": "connect@1.x", - "resolved": "https://registry.npmjs.org/connect/-/connect-1.9.2.tgz", + "accepts": { + "version": "1.2.13", + "from": "accepts@~1.2.12", + "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.2.13.tgz", "dependencies": { - "formidable": { - "version": "1.0.17", - "from": "formidable@1.0.x", - "resolved": "https://registry.npmjs.org/formidable/-/formidable-1.0.17.tgz" + "mime-types": { + "version": "2.1.6", + "from": "mime-types@~2.1.6", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.6.tgz", + "dependencies": { + "mime-db": { + "version": "1.18.0", + "from": "mime-db@~1.18.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.18.0.tgz" + } + } + }, + "negotiator": { + "version": "0.5.3", + "from": "negotiator@0.5.3", + "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.5.3.tgz" } } }, - "mime": { - "version": "1.2.4", - "from": "mime@1.2.4", - "resolved": "https://registry.npmjs.org/mime/-/mime-1.2.4.tgz" + "array-flatten": { + "version": "1.1.1", + "from": "array-flatten@1.1.1", + "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz" + }, + "content-disposition": { + "version": "0.5.0", + "from": "content-disposition@0.5.0", + "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.0.tgz" + }, + "content-type": { + "version": "1.0.1", + "from": "content-type@~1.0.1", + "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.1.tgz" + }, + "cookie": { + "version": "0.1.3", + "from": "cookie@0.1.3", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.1.3.tgz" + }, + "cookie-signature": { + "version": "1.0.6", + "from": "cookie-signature@1.0.6", + "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz" + }, + "depd": { + "version": "1.0.1", + "from": "depd@~1.0.1", + "resolved": "https://registry.npmjs.org/depd/-/depd-1.0.1.tgz" + }, + "escape-html": { + "version": "1.0.2", + "from": "escape-html@1.0.2", + "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.2.tgz" + }, + "etag": { + "version": "1.7.0", + "from": "etag@~1.7.0", + "resolved": "https://registry.npmjs.org/etag/-/etag-1.7.0.tgz" + }, + "finalhandler": { + "version": "0.4.0", + "from": "finalhandler@0.4.0", + "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-0.4.0.tgz", + "dependencies": { + "unpipe": { + "version": "1.0.0", + "from": "unpipe@~1.0.0", + "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz" + } + } + }, + "fresh": { + "version": "0.3.0", + "from": "fresh@0.3.0", + "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.3.0.tgz" + }, + "merge-descriptors": { + "version": "1.0.0", + "from": "merge-descriptors@1.0.0", + "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.0.tgz" + }, + "methods": { + "version": "1.1.1", + "from": "methods@~1.1.1", + "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.1.tgz" + }, + "on-finished": { + "version": "2.3.0", + "from": "on-finished@~2.3.0", + "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz", + "dependencies": { + "ee-first": { + "version": "1.1.1", + "from": "ee-first@1.1.1", + "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz" + } + } + }, + "parseurl": { + "version": "1.3.0", + "from": "parseurl@~1.3.0", + "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.0.tgz" + }, + "path-to-regexp": { + "version": "0.1.7", + "from": "path-to-regexp@0.1.7", + "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz" + }, + "proxy-addr": { + "version": "1.0.8", + "from": "proxy-addr@~1.0.8", + "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-1.0.8.tgz", + "dependencies": { + "forwarded": { + "version": "0.1.0", + "from": "forwarded@~0.1.0", + "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.1.0.tgz" + }, + "ipaddr.js": { + "version": "1.0.1", + "from": "ipaddr.js@1.0.1", + "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.0.1.tgz" + } + } }, "qs": { - "version": "0.4.2", - "from": "qs@0.4.x", - "resolved": "https://registry.npmjs.org/qs/-/qs-0.4.2.tgz" + "version": "4.0.0", + "from": "qs@4.0.0", + "resolved": "https://registry.npmjs.org/qs/-/qs-4.0.0.tgz" }, - "mkdirp": { - "version": "0.3.0", - "from": "mkdirp@0.3.0", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.3.0.tgz" + "range-parser": { + "version": "1.0.2", + "from": "range-parser@~1.0.2", + "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.0.2.tgz" + }, + "send": { + "version": "0.13.0", + "from": "send@0.13.0", + "resolved": "https://registry.npmjs.org/send/-/send-0.13.0.tgz", + "dependencies": { + "destroy": { + "version": "1.0.3", + "from": "destroy@1.0.3", + "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.0.3.tgz" + }, + "http-errors": { + "version": "1.3.1", + "from": "http-errors@~1.3.1", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.3.1.tgz", + "dependencies": { + "inherits": { + "version": "2.0.1", + "from": "inherits@~2.0.1", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz" + } + } + }, + "mime": { + "version": "1.3.4", + "from": "mime@1.3.4", + "resolved": "https://registry.npmjs.org/mime/-/mime-1.3.4.tgz" + }, + "ms": { + "version": "0.7.1", + "from": "ms@0.7.1", + "resolved": "https://registry.npmjs.org/ms/-/ms-0.7.1.tgz" + }, + "statuses": { + "version": "1.2.1", + "from": "statuses@~1.2.1", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.2.1.tgz" + } + } + }, + "serve-static": { + "version": "1.10.0", + "from": "serve-static@~1.10.0", + "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.10.0.tgz" + }, + "type-is": { + "version": "1.6.8", + "from": "type-is@~1.6.6", + "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.8.tgz", + "dependencies": { + "media-typer": { + "version": "0.3.0", + "from": "media-typer@0.3.0", + "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz" + }, + "mime-types": { + "version": "2.1.6", + "from": "mime-types@~2.1.6", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.6.tgz", + "dependencies": { + "mime-db": { + "version": "1.18.0", + "from": "mime-db@~1.18.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.18.0.tgz" + } + } + } + } + }, + "utils-merge": { + "version": "1.0.0", + "from": "utils-merge@1.0.0", + "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.0.tgz" + }, + "vary": { + "version": "1.0.1", + "from": "vary@~1.0.1", + "resolved": "https://registry.npmjs.org/vary/-/vary-1.0.1.tgz" } } }, @@ -153,7 +441,7 @@ }, "inherits": { "version": "2.0.1", - "from": "inherits@2", + "from": "inherits@~2.0.1", "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz" } } @@ -245,7 +533,7 @@ }, "inherits": { "version": "2.0.1", - "from": "inherits@2", + "from": "inherits@~2.0.1", "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz" }, "isarray": { @@ -306,7 +594,7 @@ }, "mime-types": { "version": "2.1.6", - "from": "mime-types@~2.1.2", + "from": "mime-types@~2.1.6", "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.6.tgz", "dependencies": { "mime-db": { @@ -369,9 +657,9 @@ "resolved": "https://registry.npmjs.org/hawk/-/hawk-3.1.0.tgz", "dependencies": { "hoek": { - "version": "2.16.0", + "version": "2.16.2", "from": "hoek@2.x.x", - "resolved": "https://registry.npmjs.org/hoek/-/hoek-2.16.0.tgz" + "resolved": "https://registry.npmjs.org/hoek/-/hoek-2.16.2.tgz" }, "boom": { "version": "2.8.0", diff --git a/package.json b/package.json index 8c485829..851ad3d4 100644 --- a/package.json +++ b/package.json @@ -22,7 +22,8 @@ "Sandro Santilli " ], "dependencies": { - "express": "~2.5.11", + "express": "~4.13.3", + "body-parser": "~1.14.0", "debug": "~2.2.0", "step-profiler": "~0.2.1", "node-statsd": "~0.0.7", diff --git a/test/unit/cartodb/ported/tile_stats.test.js b/test/unit/cartodb/ported/tile_stats.test.js index 318c7194..2a872eb3 100644 --- a/test/unit/cartodb/ported/tile_stats.test.js +++ b/test/unit/cartodb/ported/tile_stats.test.js @@ -36,6 +36,9 @@ describe('tile stats', function() { } }; var resMock = { + status: function() { return this; }, + json: function() {}, + jsonp: function() {}, send: function() {} }; layergroupController.finalizeGetTileOrGrid('Unsupported format png2', reqMock, resMock, null, null); @@ -61,6 +64,9 @@ describe('tile stats', function() { } }; var resMock = { + status: function() { return this; }, + json: function() {}, + jsonp: function() {}, send: function() {} }; diff --git a/test/unit/cartodb/ported/windshaft_server.test.js b/test/unit/cartodb/ported/windshaft_server.test.js index c7acdceb..52f90d0d 100644 --- a/test/unit/cartodb/ported/windshaft_server.test.js +++ b/test/unit/cartodb/ported/windshaft_server.test.js @@ -19,9 +19,9 @@ describe('windshaft', function() { it('can spawn a new server on the global listen port', function(done){ var ws = cartodbServer(serverOptions); - ws.listen(global.environment.windshaft_port, function() { + var server = ws.listen(global.environment.windshaft_port, function() { assert.ok(ws); - ws.close(done); /* allow proper tear down */ + server.close(done); /* allow proper tear down */ }); });