Skip to content

Commit 41f11e0

Browse files
author
Raul Ochoa
authored
Merge pull request #366 from CartoDB/express-4.x
Express 4.x
2 parents 4f83da3 + 0e43f7c commit 41f11e0

File tree

16 files changed

+515
-288
lines changed

16 files changed

+515
-288
lines changed

app.js

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -81,7 +81,8 @@ if ( ! global.settings.base_url ) {
8181
var version = require("./package").version;
8282

8383
var server = require('./app/server')();
84-
server.listen(global.settings.node_port, global.settings.node_host, function() {
84+
var listener = server.listen(global.settings.node_port, global.settings.node_host);
85+
listener.on('listening', function() {
8586
console.info('Using configuration file "%s"', configurationFile);
8687
console.log(
8788
"CartoDB SQL API %s listening on %s:%s PID=%d (%s)",

app/controllers/health_check_controller.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -24,11 +24,11 @@ HealthCheckController.prototype.handleHealthCheck = function (req, res) {
2424
if (err) {
2525
response.err = err.message;
2626
}
27-
res.send(response, ok ? 200 : 503);
27+
res.status(ok ? 200 : 503).send(response);
2828

2929
});
3030
} else {
31-
res.send({enabled: false, ok: true}, 200);
31+
res.status(200).send({enabled: false, ok: true});
3232
}
3333
};
3434

app/server.js

Lines changed: 6 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@
1515
//
1616

1717
var express = require('express');
18+
var bodyParser = require('body-parser');
1819
var os = require('os');
1920
var Profiler = require('step-profiler');
2021
var StatsD = require('node-statsd').StatsD;
@@ -50,7 +51,7 @@ require('./utils/date_to_json');
5051
// jshint maxcomplexity:12
5152
function App() {
5253

53-
var app = express.createServer();
54+
var app = express();
5455

5556
var redisConfig = {
5657
host: global.settings.redis_host,
@@ -102,16 +103,6 @@ function App() {
102103
}
103104
};
104105
app.use(global.log4js.connectLogger(global.log4js.getLogger(), _.defaults(loggerOpts, {level:'info'})));
105-
} else {
106-
// Express logger uses tokens as described here: http://www.senchalabs.org/connect/logger.html
107-
express.logger.token('sql', function(req) {
108-
return app.getSqlQueryFromRequestBody(req);
109-
});
110-
app.use(express.logger({
111-
buffer: true,
112-
format: global.settings.log_format ||
113-
':remote-addr :method :req[Host]:url :status :response-time ms -> :res[Content-Type]'
114-
}));
115106
}
116107

117108
// Initialize statsD client if requested
@@ -172,9 +163,12 @@ function App() {
172163
});
173164
}
174165

175-
app.use(express.bodyParser());
166+
app.use(bodyParser.json());
167+
app.use(bodyParser.urlencoded({ extended: true }));
176168
app.enable('jsonp callback');
177169
app.set("trust proxy", true);
170+
app.disable('x-powered-by');
171+
app.disable('etag');
178172

179173
// basic routing
180174

app/utils/error_handler.js

Lines changed: 13 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -25,14 +25,22 @@ module.exports = function handleException(err, res) {
2525
// Force inline content disposition
2626
res.header("Content-Disposition", 'inline');
2727

28-
if ( res.req && res.req.profiler ) {
29-
res.req.profiler.done('finish');
30-
res.header('X-SQLAPI-Profiler', res.req.profiler.toJSONString());
28+
var req = res.req;
29+
30+
if (req && req.profiler ) {
31+
req.profiler.done('finish');
32+
res.header('X-SQLAPI-Profiler', req.profiler.toJSONString());
3133
}
3234

33-
res.send(msg, getStatusError(pgErrorHandler, res.req));
35+
res.header('Content-Type', 'application/json; charset=utf-8');
36+
res.status(getStatusError(pgErrorHandler, req));
37+
if (req.query && req.query.callback) {
38+
res.jsonp(msg);
39+
} else {
40+
res.json(msg);
41+
}
3442

35-
if ( res.req && res.req.profiler ) {
43+
if (req && req.profiler) {
3644
res.req.profiler.sendStats();
3745
}
3846
};

0 commit comments

Comments
 (0)