TypeError:server.connection不是Hapi nodejs中的函数

时间:2018-01-22 05:24:23

标签: node.js hapijs

我开始使用Hapi nodejs框架。我正在使用" hapi@17.2.0"这是我在server.js中启动应用程序的代码。

'use strict';

const Hapi = require('hapi');

const server = new Hapi.Server();
server.connection({ port: 3000, host: 'localhost' });

server.route({
    method: 'GET',
    path: '/',
    handler: function (request, reply) {
        reply('Hello, world!');
    }
});

server.start((err) => {

    if (err) {
        throw err;
    }
    console.log(`Server running at: ${server.info.uri}`);
});

使用node server.js从终端运行我的项目后,它会抛出错误,如下所示。

/var/www/html/hello_hapi/server.js:6
server.connection({ port: 3000, host: 'localhost' });
       ^

TypeError: server.connection is not a function
    at Object.<anonymous> (/var/www/html/hello_hapi/server.js:6:8)
    at Module._compile (module.js:612:30)
    at Object.Module._extensions..js (module.js:623:10)
    at Module.load (module.js:531:32)
    at tryModuleLoad (module.js:494:12)
    at Function.Module._load (module.js:486:3)
    at Function.Module.runMain (module.js:653:10)
    at startup (bootstrap_node.js:187:16)
    at bootstrap_node.js:608:3

3 个答案:

答案 0 :(得分:12)

我找到了解决我的错误的解决方案。我刚刚换了郎 server.connection({ port: 3000, host: 'localhost' });

const server = new Hapi.Server({ port: 3000, host: 'localhost' });

以下是说明: 根据hapi v17.0.0,他们删除了对单个服务器的多个连接的支持

  1. server.connection()方法将替换为创建服务器对象时直接传递的选项。
  2. 从所有对象中删除连接属性。
  3. 所有连接方法都已移至服务器。
  4. 删除了对标签和select()方法和选项的支持。

答案 1 :(得分:0)

在hapi 16中,有对server.connection()的支持,但是在hapi 17中,它们代替了server.connection(),而是

const Hapi = require('hapi')
const server = Hapi.server({
port:3000 || process.env.port
})

这可以在节点js中使用。

如果您使用打字稿和打字,那么

const server = new Hapi.server({port:3000 || process.env.port})

答案 2 :(得分:0)

替换为

const server = new Hapi.Server({  
  host: 'localhost',
  port: 3000
})

如果您正在使用此

server.connection({   

    port: 8000,
    host: 'localhost'

});