我开始使用nodejs的Hapi框架。我正在使用Hapi"版本":" 16.0.0"。我试图用Hapi加载静态页面和内容,为此我安装了" inert"在命令npm install --save inert
的帮助下插件。
这是我的代码,我将其包含在我的server.js文件中,如下所示。
server.register(require('inert'), (err) => {
if (err) {
throw err;
}
server.route({
method: 'GET',
path: '/hello',
handler: function (request, reply) {
reply.file('./public/hello.html');
}
});
});
使用node server.js
运行项目后,我收到了以下错误。
/Library/WebServer/Documents/pro_hapi/node_modules/hapi/lib/plugin.js:219
if (plugin.register.register) { // Required plugin
^
TypeError: Cannot read property 'register' of undefined
at module.exports.internals.Server.internals.Plugin.register (/Library/WebServer/Documents/pro_hapi/node_modules/hapi/lib/plugin.js:219:29)
at Object.<anonymous> (/Library/WebServer/Documents/pro_hapi/server.js:16:8)
at Module._compile (module.js:635:30)
at Object.Module._extensions..js (module.js:646:10)
at Module.load (module.js:554:32)
at tryModuleLoad (module.js:497:12)
at Function.Module._load (module.js:489:3)
at Function.Module.runMain (module.js:676:10)
at startup (bootstrap_node.js:187:16)
at bootstrap_node.js:608:3
答案 0 :(得分:2)
我搜索了那个,我找到了一个解决方案,结束了以下事情
npm install inert --save
安装inert插件将默认安装惰性版本5.x。hapi "version": "16.0.0",
将需要使用Inert v4.x
,或者,要使用Inert v5,您需要更新为hapi v17。npm install <package>@<version>
在我的情况下,我运行sudo npm install inert@4.2.1 --save
,用惰性版本4.2.1覆盖现有的惰性包(5.x)。
node server.js
运行我的项目,这次它有效。