UNPKG

1.14 kBJavaScriptView Raw
1var expo = module.exports = function(app, dir) {
2 // Use source maps
3 require('source-map-support').install();
4
5 require('./lib/app')(app);
6 app.root = dir;
7 return app;
8};
9
10/**
11 * Middleware proxy to express.errorHandler, but let 404 errors through.
12 *
13 * app.use(app.errorHandler(express.errorHandler()));
14 */
15
16expo.errorHandler = function(handler) {
17 return function(err, req, res, next) {
18 if (err === 404) return next(404);
19 handler(err, req, res, next);
20 };
21};
22
23/**
24 * Middleware for logging errors to STDERR.
25 * This is activated when using `app.set('log errors', true);`.
26 */
27
28expo.errorLogger = function(err, req, res, next) {
29 if (err === 404) next(err);
30
31 var addr = req.socket && (req.socket.remoteAddress || (req.socket.socket && req.socket.socket.remoteAddress));
32 var ver = req.httpVersionMajor + '.' + req.httpVersionMinor;
33
34 console.error("");
35 console.error("ERROR:");
36 console.log(" ", req.method, req.url, "HTTP/"+ver, "-", res.statusCode);
37 console.log(" ", "Remote-IP:", addr);
38 console.log(" ", "Date:", (new Date()).toUTCString());
39 console.error(err.stack);
40 next(err);
41};