try {
responce = (function request(req) {
var user = auth.getUser(req);
if (user.auth) {
var data = db.getData();
if (data) {
return new Responce(template.render(data));
}
}
return error404;
})(req);
} catch(e) {
show500(e);
}
try {
(function request(req, res) {
auth.getUser(req, function(user) {
if ( ! user.auth) {
return res.error404();
}
db.getData(function(data) {
if ( ! data) {
return res.error404();
}
res.write(template.render(data));
});
});
})(req, res);
} catch(e) {
res.show500(e);
}
try {
(function request(req, res) {
auth.getUser(req, function(user) {
try {
if ( ! user.auth) {
return res.error404();
}
db.getData(function(data) {
try {
if ( ! data) {
return res.error404();
}
res.write(template.render(data));
} catch(e) {
res.show500(e);
}
});
} catch(e) {
res.show500(e);
}
});
})(req, res);
} catch(e) {
res.show500(e);
}
asyncFunction(args, function(error, result){})
auth.getUser(req, function(error,user) {
if (error != null){
handle(res,error);
return;
}
db.getData(function(error,data) {
if (error != null){
handle(res,error);
return;
}
res.write(template.render(data));
});
Юзаем domain http://habrahabr.ru/post/147233/
Вообще специфика обработки на ноде это callback(error, data) где в колбек улетает ошибка