Я создаю свой первый веб-сервис REST node.js, используя hapi.js. Мне любопытно, как лучше всего обрабатывать ошибки, скажем, из моего слоя дао. Должен ли я throw
их в моем слое dao, а затем просто try/catch
блоков обрабатывать их и отправлять обратно ошибки в моем контроллере, или есть лучший способ, которым крутые ребята справляются с этим?
маршруты /task.js
var taskController = require('../controllers/task');
//var taskValidate = require('../validate/task');
module.exports = function() {
return [
{
method: 'POST',
path: '/tasks/{id}',
config : {
handler: taskController.createTask//,
//validate : taskValidate.blah
}
}
]
}();
контроллеры /task.js
var taskDao = require('../dao/task');
module.exports = function() {
return {
/**
* Creates a task
*
* @param req
* @param reply
*/
createTask: function createTask(req, reply) {
taskDao.createTask(req.payload, function (err, data) {
// TODO: Properly handle errors in hapi
if (err) {
console.log(err);
}
reply(data);
});
}
}();
дао/task.js
module.exports = function() {
return {
createTask: function createTask(payload, callback) {
... Something here which creates the err variable...
if (err) {
console.log(err); // How to properly handle this bad boy
}
}
}();