[解決済み】nodejs http.getレスポンスのbodyはどこですか?
2022-04-09 16:31:48
質問
のドキュメントを読んでいるところです。 http://nodejs.org/docs/v0.4.0/api/http.html#http.request しかし、何らかの理由で、返された終了した応答オブジェクトの body/data 属性を実際に見つけることができないようです。
> var res = http.get({host:'www.somesite.com', path:'/'})
> res.finished
true
> res._hasBody
true
終了している(http.getがやってくれる)ので、何らかのコンテンツがあるはずです。でも、本文もデータもないし、読み取ることもできない。ボディはどこに隠れているのでしょうか?
解決方法は?
編集:6年後の自分への返信
は
待つ
キーワード
は、HTTP リクエストからレスポンスを取得するための最良の方法であり、コールバックや
.then()
また、プロミスを返すHTTPクライアントを使用する必要があります。
http.get()
はまだRequestオブジェクトを返すので、うまくいきません。
-
fetch
は低レベルのクライアントで、npm と nodeJS 17 以降の両方から利用できます。 -
superagent
は成熟した HTTP クライアントで、よりシンプルなクエリ文字列エンコーディング、適切な MIME タイプの使用、デフォルトでの JSON、およびその他の一般的な HTTP クライアント機能を含む、より合理的なデフォルトを特徴としています。 -
axios
もかなり人気がありsuperagent
await
は、Promise が値を持つまで待ちます - この場合、HTTP レスポンスです!
const superagent = require('superagent');
(async function(){
const response = await superagent.get('https://www.google.com')
console.log(response.text)
})();
await を使って、制御する
は単に次の行に渡します。
によって返されたプロミスが
superagent.get()
が値を持っていることを示します。
関連
-
[解決済み] NodeJSの使用中にError: listen EADDRINUSEを修正する方法は?
-
[解決済み] TypeErrorです。リクエストパスにエスケープされていない文字が含まれています。
-
[解決済み] エラーです。Ionic使用中にモジュール '../lib/utils/unsupported.js' が見つかりません。
-
[解決済み] HTTP GET(リクエストボディ付き
-
[解決済み] npmはどこにパッケージをインストールするのですか?
-
[解決済み] リソースが既に存在する場合の POST に対する HTTP レスポンスコード
-
[解決済み] HTTP DELETE リクエストにエンティティボディは許されますか?
-
[解決済み] nodejsのコードでpackage.jsonからバージョンを取得する方法はありますか?
-
[解決済み] プリフライト要求に対する応答がアクセス制御チェックを通過しない
-
[解決済み] PHP の cURL は、一度のリクエストでレスポンスヘッダーとボディーの両方を取得できますか?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] エラー: nodejs の get 呼び出しで getaddrinfo ENOTFOUND が発生しました。
-
[解決済み】 console.logの出力をどこに永久保存するか?
-
[解決済み】ブロックスコープの宣言は、ストリクトモード以外ではまだサポートされていません。
-
[解決済み】AWS lambda function エラー - モジュール 'index' をインポートできません。エラー
-
[解決済み] EventEmitter のメモリリークの可能性が検出された
-
[解決済み] TypeErrorです。リクエストパスにエスケープされていない文字が含まれています。
-
[解決済み] Json Web Token verify() return jwt malformed
-
[解決済み] ノードマータ予期せぬフィールド
-
[解決済み] node.js - リクエスト - "emitter.setMaxListeners() "はどのように?
-
[解決済み] "app.use(express.cookieSession())" に "secret" オプションが必要です。