当尝试升级到最新的Hapi.js(9.x)时,我们得到:错误:未知的处理程序:目录

nel*_*nic 4 javascript node.js hapijs

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

我们使用hapi.js directory在我们的static-server.js中提供服务,请参阅:https://github.com/dwyl/learn-tdd/blob/5b132bfe5e1787b684ff44eadaf8b53438449323/static-server.js#L3

directory处理器精细曾在高致病性禽流感8.x的,但在9.0.1我们得到的错误:

Error: Unknown handler: directory
Run Code Online (Sandbox Code Playgroud)

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

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

小智 6

所述惰性插件需要被包括在版本9(版本说明:手动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)   });
});
Run Code Online (Sandbox Code Playgroud)