无法在插件 HapiJS 中添加模板引擎

Can't add templating engine in plugin HapiJS

我想为每个插件实现路由,但我无法在插件中添加视图引擎。我见过这样的例子,例如:https://github.com/hapijs-edge/hapi-plugins.com/blob/master/lib/routes.js,但我收到一条错误消息 server.views is not a function

var Hapi = require('hapi');

var server = new Hapi.Server();
server.connection();

var myPlugin = {
    register: function (server, options, next) {

        // Error happens here, should be able to see server.views()
        console.log(server.views()); 
        next();
    }
};

myPlugin.register.attributes = {
    name: 'myPlugin',
    version: '1.0.0'
};

server.register( myPlugin, function(err) {

    if (err) {
        console.error('Failed to load a plugin:', err);
    }
} );

server.start(function () {

    console.log('Server running at:', server.info.uri);
});

好像是hapi v10的问题。试试 "npm i hapi@8.8.1",那个版本应该可以用

hapi 的伙计们向我展示了方法...从 hapi 9 开始,需要视觉模块来装饰服务器并访问 views 方法。现在可以正常使用了!

您需要先注册 vision plugin 才能使用 hapi => 9.x.x 的 server.view 功能。