Upgrade express, adds body-parser

- basic changes in server
- basic changes in unit tests
This commit is contained in:
Raul Ochoa
2015-09-17 00:19:00 +02:00
parent e335f51dbc
commit beabe48aec
5 changed files with 334 additions and 39 deletions
+9 -9
View File
@@ -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'})));
}
}
+315 -27
View File
@@ -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",
+2 -1
View File
@@ -22,7 +22,8 @@
"Sandro Santilli <strk@vizzuality.com>"
],
"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",
@@ -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() {}
};
@@ -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 */
});
});