0

フォローアップ#2 : これは、node.js のイディオムであるコールバック (コールバックを呼び出すコールバックを呼び出す...) を適切に使用していない 99% の「私の悪い」ことだと思います。適切にリファクタリングすると、IntelliJ でもすべてが機能するように見えます。私は、Java プログラマーにとって漠然と正気と思われるコールバック関数を配置する方法を考え出しました。コマンドラインで機能した理由はわかりませんが、おそらくnode.jsがスレッド化/非同期処理を処理する方法に問題があります。

この質問全体を削除する必要があるかどうかわかりません。

元の質問は次のとおりです。

私はベテランの Java プログラマーで、Javascript、node.js、またはリクエストの経験はほとんどありません。基本的な HTTP GET (そして最終的には POST) を実行したいと考えています。Mikeal のリクエスト フレームワーク ( https://github.com/mikeal/request ) は合理的に見えます。しかし、応答を変数に取得して解析できるようにする方法がわかりません。彼の例はすべてコンソールに送られます。

私のコードは

var Request = require('request');
var ggg;
Request.get('http://www.google.com', function (error, response, body) {
        console.log(body) // Print the google web page.
        ggg = body;

});

IntelliJ Webstorm7 デバッガーで実行しています。コールバック内 (ggg = body 行) にブレークポイントを設定しましたが、これは決してトリガーされません。また、記録のために、コンソールも何も記録していません。このコードの後のブレークポイントで、ggg は「未定義」としてリストされます。

これが私の誤解なのか、IntelliJ の奇妙さなのか、それともリクエスト ライブラリが機能しないのかはわかりません。

フォローアップ : 私の intellij の何かが台無しになっていると思いますノードnameoffile.jsを介してコマンドラインからこのコードを実行すると、うまくいくようです。

4

1 に答える 1

0

さて、実際に最初に行うこと

npm list

インストールしたかどうかを確認しますrequest...それ以外の場合は次を使用してインストールします

npm install request

次に、コードに単純なバグがあります。console.log の後にセミコロンがありません。

console.log(body);
于 2013-10-23T03:43:35.100 に答える