When attempting to upgrade to latest Hapi.js (9.x) we get: Error: Unknown handler: directory

When attempting to upgrade to latest Hapi.js (9.x) we get: Error: Unknown handler: directory

刚刚尝试更新到 Hapi.js 的最新版本,但 directory 处理程序出现错误...

我们正在使用 hapi.js 在我们的静态 server.js 中提供 directory 参见:https://github.com/dwyl/learn-tdd/blob/5b132bfe5e1787b684ff44eadaf8b53438449323/static-server.js#L3

directory 处理程序在 hapi 8.x 中工作正常,但在 9.0.1 中我们得到错误:

Error: Unknown handler: directory

我们已尝试在 Hapi.js 路线 API 上搜索:http://hapijs.com/api#route-handler 但还没有找到 directory 处理程序……它在最新版本中被删除了吗? Hapi.js 的 "old" 版本有:http://hapijs.com/api/8.8.1#route-handler

完整堆栈跟踪:https://github.com/dwyl/learn-tdd/issues/22

inert plugin needs to be included manually in version 9 (release notes: https://github.com/hapijs/hapi/issues/2682)。使用 server.register

将其添加为插件

按照 https://www.npmjs.com/package/inert#examples 上的说明进行操作 例如:

var Hapi = require('hapi');
var Inert = require('inert');
var Path = require('path');
var server = new Hapi.Server();
var port = process.env.PORT || 8000;
server.register(Inert, function () {
  server.connection({ port: port });
  server.route( {
    method: 'GET',
    path: '/{param*}',
    handler: {
      directory: { path: Path.normalize(__dirname + '/') }
    }
  });
  server.start(function() { console.log('Visit: http://127.0.0.1:' +port)   });
});