如何输出从Hapi.js视图生成的视图编译器错误?

Dav*_*sen 3 node.js hapijs pug

来自express的世界,如果编译Jade模板时出错,则错误会输出到浏览器,其中包含模板错误的详细信息,包括行号.当视图模板编译器遇到错误时,我希望在Hapi.js中看到此级别的错误详细信息.

相反,使用Hapi.js,我收到500内部服务器错误.我在日志中看到的唯一输出如下:

150511/005652.910, [response], http://localhost:3000: get /abc123 {} 500 (24ms)
Run Code Online (Sandbox Code Playgroud)

这是我的设置的基础知识.


var Hapi = require('hapi');
var server = new Hapi.Server();
server.connection({ port: 3000 });

server.views({
  engines: { jade: require('jade') },
  path: __dirname + '/views',
  compileOptions: {
    pretty: true,
    debug: true,
    compileDebug: true
  }
});

server.route({
  method: 'GET',
  path: '/{name}',
  handler: function (request, reply) {
    reply.view('page', {name: request.params.name});
  }
});

// I know putting my plugins in an array is not necessary but I like it.
var plugins = [{
  register: Good,
  options: {
    reporters: [{
      reporter: require('good-console'),
      events: {
        response: '*',
        log: '*'
      }
    }]
  }
}];

server.register(plugins, function (err) {
  if (err) {
    throw err; // something bad happened loading the plugin
  }

  server.start(function () {
    server.log('info', 'Server running at: ' + server.info.uri);
  });
});
Run Code Online (Sandbox Code Playgroud)

Geu*_*uis 6

本周也有同样的问题.

var server = new Hapi.Server({
  debug: {
    request: ['error']
  }
});
Run Code Online (Sandbox Code Playgroud)

它不会输出到客户端(您仍然会收到500错误),但编译错误将显示在终端控制台中.

  • 这是一个完整的救星. (2认同)