如何在sailsjs应用程序中使用漂亮错误?

时间:2014-03-07 22:23:58

标签: node.js sails.js

pretty-error必须像这样设置:

require('pretty-error').start(function(){
  startTheApp();
});

由于我现在没有sailsjs启动应用程序的地方,我在config/bootstrap.js尝试了这个:

module.exports.bootstrap = function (cb) {
  require('pretty-error').start(cb)
}

但它不起作用。

任何指南?

1 个答案:

答案 0 :(得分:2)

pretty-error非常容易用于简单的节点程序,你可以在回调中包装整个事物,但对于更大的应用程序来说有点棘手。如果您希望在Sails v0.10中完全覆盖pretty-error,则可以执行以下操作:

首先,在您的根app.js文件中,像这样包装sails.lift(rc('sails'))

require('pretty-error').start(function(){
    // Start server
    sails.lift(rc('sails'));
});

这会处理控制器代码之外的错误(例如bootstrap.js中的错误)。

其次,在您的api/responses/500.js中,在顶部需要pretty-error,然后将sails.log.error(errorToLog);替换为:

var pe = new PrettyError();
console.log(pe.render(errorsToDisplay[i].original ? errorsToDisplay[i].original : errorsToDisplay[i]));

这应该处理控制器和模型中的错误。