mirror of
https://github.com/zhigang1992/deployd.git
synced 2026-05-13 21:06:16 +08:00
added better error handling in events
This commit is contained in:
@@ -79,7 +79,9 @@ Context.prototype.done = function(err, res) {
|
||||
if(err.statusCode) this.res.statusCode = err.statusCode;
|
||||
|
||||
if(Object.prototype.toString.call(err) === '[object Error]') {
|
||||
body = err.message;
|
||||
this.res.statusCode = 500;
|
||||
body = err.message;
|
||||
type = 'text/plain';
|
||||
} else if(typeof err === 'object') {
|
||||
type = 'application/json';
|
||||
body = JSON.stringify(err);
|
||||
|
||||
@@ -259,7 +259,11 @@ Collection.prototype.execListener = function(method, session, query, item, clien
|
||||
asyncFunctions: {dpd: client}
|
||||
};
|
||||
asyncEval(listener, opts, function (err) {
|
||||
if(err) debug('error when executing %s listener', method, err);
|
||||
if(err) {
|
||||
debug('error when executing %s listener', method, err);
|
||||
fn(err);
|
||||
total = -1;
|
||||
}
|
||||
total--;
|
||||
if(!total) {
|
||||
fn(err || errors, data);
|
||||
@@ -305,7 +309,10 @@ Collection.prototype.find = function (session, query, client, fn) {
|
||||
debug('found %j', err || result || 'none');
|
||||
collection.execListener('Get', session, query, result, client, function (err, results) {
|
||||
debug("Listener Callback");
|
||||
if(err) return fn(err);
|
||||
if(err) {
|
||||
err.message = 'Error while executing GET event: ' + err.message;
|
||||
return fn(err);
|
||||
}
|
||||
if(query.id) return fn(null, results[0]);
|
||||
fn(null, results);
|
||||
});
|
||||
@@ -327,7 +334,10 @@ Collection.prototype.remove = function (session, query, client, fn) {
|
||||
|
||||
if(!(query && query.id)) return fn('You must include a query with an id when deleting an object from a collection.');
|
||||
store.find(query, function (err, result) {
|
||||
if(err) return fn(err);
|
||||
if(err) {
|
||||
err.message = 'Error while executing DELETE event: ' + err.message;
|
||||
return fn(err);
|
||||
}
|
||||
|
||||
collection.execListener('Delete', session, query, result, client, function (err) {
|
||||
if(err) return fn(err);
|
||||
@@ -383,7 +393,10 @@ Collection.prototype.save = function (session, item, query, client, fn) {
|
||||
});
|
||||
|
||||
collection.execListener('Put', session, query, item, client, function (err, item) {
|
||||
if(err) return fn(err);
|
||||
if(err) {
|
||||
err.message = 'Error while executing PUT event: ' + err.message;
|
||||
return fn(err);
|
||||
}
|
||||
if(!obj) return fn(new Error('You can\'t update an object by ID that does not exist.'));
|
||||
|
||||
delete item.id;
|
||||
@@ -399,7 +412,10 @@ Collection.prototype.save = function (session, item, query, client, fn) {
|
||||
item.id = store.createUniqueIdentifier();
|
||||
|
||||
collection.execListener('Post', session, query, item, client, function (err, item) {
|
||||
if(err) return fn(err);
|
||||
if(err) {
|
||||
err.message = 'Error while executing POST event: ' + err.message;
|
||||
return fn(err);
|
||||
}
|
||||
store.insert(item, fn);
|
||||
});
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user