web-dev-qa-db-ja.com

TypeError:server.connectionはHapinodejsの関数ではありません

Hapinodejsフレームワークを使い始めました。 「[email protected]」を使用しています。これが、アプリケーションを開始するための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
11
Jitendra

エラーを解決するための解決策を見つけました。交換したばかり
server.connection({ port: 3000, Host: 'localhost' });

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

以下に説明を示します。hapiv17.0.0によると、単一サーバーの複数接続のサポートが削除されました。

  1. Server.connection()メソッドは、サーバーオブジェクトの作成時に直接渡されるオプションに置き換えられます。
  2. 接続プロパティはすべてのオブジェクトから削除されます。
  3. すべての接続方法がサーバーに移動しました。
  4. ラベルとselect()メソッドおよびオプションのサポートを削除しました。
13
Jitendra

Hapi 16ではserver.connection()がサポートされていましたが、hapi 17ではserver.connection()に置き換わり、代わりに

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

これはノードjsで使用できます。

TypeScriptとタイピングを使用している場合は、

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

これに置き換えます

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

これを使用している場合

server.connection({   

    port: 8000,
    Host: 'localhost'

});
0
Jamil Noyda