ノードを使い慣れておらず、単純な関数に問題があります。基本的に、この関数はエンティティ名(ownerEntity)を受け取り、そのエンティティのURLとポート番号を参照してGET要求を処理します。 TypeError: Cannot read property 'URL' of undefined
変数がノード関数内で未定義になる
機能は次のとおりです。:
const config = require('./index.js');
module.exports = function dataServerUrl(ownerEntity) {
console.log(ownerEntity);
console.log(config.DATA_SERVER);
console.log(config.DATA_SERVER.ownerEntity);
const url = config.DATA_SERVER.ownerEntity.URL;
const port = config.DATA_SERVER.ownerEntity.PORT;
const urlParameter = url + ':' + port;
return urlParameter;
};
検索がどのように見えるconfig
というフォルダにエントリポイントindex.js
ファイルを打つ関数を呼び出すときに
はしかし、それはエラーをスローします次のようになります。
module.exports = {
DATA_SERVER: {
1111: {
URL: process.env.SERVER_1_URL,
PORT: process.env.SERVER_1_PORT,
},
2222: {
URL: process.env.SERVER_2_URL,
PORT: process.env.SERVER_2_PORT,
},
3333: {
URL: process.env.SERVER_3_URL,
PORT: process.env.SERVER_3_PORT,
},
},
};
テスト用に、コンソールログを3つ入れます。console.log
私は、ownerEntity
変数が最初に通過していること、DATA_SERVER引数が戻ってきたことがわかりますが、URLを検索すると何らかの形でownerEntity
が未定義になることがわかります。
1111
{ '1111': { URL: '0.0.0.0', PORT: '8080' },
'2222': { URL: '192.168.99.100', PORT: '8080' },
'3333': { URL: '192.168.99.100', PORT: '8081' } }
undefined
ご協力いただければ幸いです。
'config.DATA_SERVER [ownerEntity] .URL'を使用してください – Derek
ありがとう@Derekそれを修正しました! – slowtokyo