mirror of
https://github.com/sudoxnym/habitica.git
synced 2026-08-04 01:29:21 +00:00
add more details to errorHandler email
This commit is contained in:
parent
c5ca9cf41b
commit
2332b15a55
2 changed files with 44 additions and 37 deletions
|
|
@ -3,26 +3,46 @@
|
|||
|
||||
var conf = require("nconf");
|
||||
var path = require("path");
|
||||
var utils = require("./utils")
|
||||
|
||||
conf.argv()
|
||||
.env()
|
||||
//.file('defaults', path.join(path.resolve(__dirname, '../config.json.example')))
|
||||
.file('user', path.join(path.resolve(__dirname, '../config.json')));
|
||||
module.exports.setup = function(){
|
||||
conf.argv()
|
||||
.env()
|
||||
//.file('defaults', path.join(path.resolve(__dirname, '../config.json.example')))
|
||||
.file('user', path.join(path.resolve(__dirname, '../config.json')));
|
||||
|
||||
/*
|
||||
var agent;
|
||||
if (process.env.NODE_ENV === 'development') {
|
||||
// Follow these instructions for profiling / debugging leaks
|
||||
// * https://developers.google.com/chrome-developer-tools/docs/heap-profiling
|
||||
// * https://developers.google.com/chrome-developer-tools/docs/memory-analysis-101
|
||||
agent = require('webkit-devtools-agent');
|
||||
console.log("To debug memory leaks:" +
|
||||
"\n\t(1) Run `kill -SIGUSR2 " + process.pid + "`" +
|
||||
"\n\t(2) open http://c4milo.github.com/node-webkit-agent/21.0.1180.57/inspector.html?host=localhost:1337&page=0");
|
||||
}
|
||||
*/
|
||||
// var agent;
|
||||
// if (process.env.NODE_ENV === 'development') {
|
||||
// // Follow these instructions for profiling / debugging leaks
|
||||
// // * https://developers.google.com/chrome-developer-tools/docs/heap-profiling
|
||||
// // * https://developers.google.com/chrome-developer-tools/docs/memory-analysis-101
|
||||
// agent = require('webkit-devtools-agent');
|
||||
// console.log("To debug memory leaks:" +
|
||||
// "\n\t(1) Run `kill -SIGUSR2 " + process.pid + "`" +
|
||||
// "\n\t(2) open http://c4milo.github.com/node-webkit-agent/21.0.1180.57/inspector.html?host=localhost:1337&page=0");
|
||||
// }
|
||||
|
||||
if (conf.get('NODE_ENV') === "development") {
|
||||
Error.stackTraceLimit = Infinity;
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
if (conf.get('NODE_ENV') === "development") {
|
||||
Error.stackTraceLimit = Infinity;
|
||||
}
|
||||
module.exports.errorHandler = function(err, req, res, next) {
|
||||
// when we hit an error, send it to admin as an email. If no ADMIN_EMAIL is present, just send it to yourself (SMTP_USER)
|
||||
var stack = (err.stack ? err.stack : err.message ? err.message : err) +
|
||||
"\n ----------------------------\n" +
|
||||
"\nauth: " + req.headers['x-api-user'] + ' | ' + req.headers['x-api-key'] +
|
||||
"\noriginalUrl: " + req.originalUrl +
|
||||
"\nbody: " + JSON.stringify(req.body);
|
||||
utils.sendEmail({
|
||||
from: "HabitRPG <" + conf.get('SMTP_USER') + ">",
|
||||
to: conf.get('ADMIN_EMAIL') || conf.get('SMTP_USER'),
|
||||
subject: "HabitRPG Error",
|
||||
text: stack
|
||||
});
|
||||
console.error(stack);
|
||||
var shortMessage = (err.message.length < 200) ? err.message :
|
||||
err.message.substring(0,100) + err.message.substring(err.message.length-100,err.message.length);
|
||||
res.json(500,{err:shortMessage}); //res.end(err.message);
|
||||
}
|
||||
|
|
@ -5,6 +5,7 @@ var http = require("http");
|
|||
var path = require("path");
|
||||
var app = express();
|
||||
var nconf = require('nconf');
|
||||
var config = require('./config');
|
||||
var utils = require('./utils');
|
||||
var middleware = require('./middleware');
|
||||
var domainMiddleware = require('domain-middleware');
|
||||
|
|
@ -12,8 +13,7 @@ var server;
|
|||
var TWO_WEEKS = 1000 * 60 * 60 * 24 * 14;
|
||||
|
||||
// ------------ Setup configurations ------------
|
||||
require('./config');
|
||||
|
||||
config.setup();
|
||||
|
||||
// ------------ MongoDB Configuration ------------
|
||||
mongoose = require('mongoose');
|
||||
|
|
@ -109,27 +109,14 @@ app.use('/api/v2', require('./routes/apiv2').middleware);
|
|||
app.use('/api/v1', require('./routes/apiv1').middleware);
|
||||
app.use('/export', require('./routes/dataexport').middleware);
|
||||
|
||||
app.use(function(err, req, res, next) {
|
||||
// when we hit an error, send it to admin as an email. If no ADMIN_EMAIL is present, just send it to yourself (SMTP_USER)
|
||||
var stack = "["+req.session.userId+"] " + (err.stack ? err.stack : err.message ? err.message : err);
|
||||
utils.sendEmail({
|
||||
from: "HabitRPG <" + nconf.get('SMTP_USER') + ">",
|
||||
to: nconf.get('ADMIN_EMAIL') || nconf.get('SMTP_USER'),
|
||||
subject: "HabitRPG Error",
|
||||
text: stack
|
||||
});
|
||||
console.error(stack);
|
||||
var shortMessage = (err.message.length < 200) ? err.message :
|
||||
err.message.substring(0,100) + err.message.substring(err.message.length-100,err.message.length);
|
||||
res.json(500,{err:shortMessage}); //res.end(err.message);
|
||||
});
|
||||
app.use(config.errorHandler);
|
||||
|
||||
server = http.createServer(app).listen(app.get("port"), function() {
|
||||
return console.log("Express server listening on port " + app.get("port"));
|
||||
});
|
||||
app.use(domainMiddleware({
|
||||
server: server,
|
||||
server: server
|
||||
//killTimeout: 30000,
|
||||
}))
|
||||
}));
|
||||
|
||||
module.exports = server;
|
||||
Loading…
Reference in a new issue