1
app.get('/', function(req, res) {
    res.set('Content-Type', 'text/html');
    res.send('Yo');
    setTimeout(function(){
        res.send("Yo");
    },1000);
});

「送信」でリクエストが終了するようです。これを画面に書き込みYo、1秒後に(長いポーリングのようなものだと思いますが)もう一方Yoを書き込んで取得するにはどうすればよいYoYoですか?送信以外の方法はありますか?

4

5 に答える 5

2

を使用res.writeして出力を分割して生成し、を使用して応答を完了しres.endます。

于 2012-09-17T16:06:52.140 に答える
1

あなたがやろうとしていることは不可能だと思います。応答を送信すると、クライアント/サーバー接続が閉じられます。

接続を開いたままにして複数のメッセージを送信するには、ソケット(特にsocket.io )を調べます。

于 2012-09-17T16:06:21.127 に答える
0

JQuery+JSON で試してください。応答を送信してから、必要なものを JQuery と JSON で更新します。

これは、DB のもの (mongodb) を含む、expressjsの優れたチュートリアルです。

于 2013-02-22T19:34:56.270 に答える
0

node.js の問題は、非同期の「スタイル」に依存していることです。したがって、「待機」関数のようなものを導入すると、非同期実行方法の利点がすべて失われます

私はあなたが望むものに似た何かを達成できると信じています:

  1. (非同期の方法) 最初の関数へのコールバックとして 2 番目の "Yo" を出力する関数を含む (または)
  2. (従来の wait(synchronous) ) は、2 番目の「よ」を提示する前に「大きな」ループを導入します。

例えば:

for(i=0; i < 100000000; i++) {
    //do something
}
于 2013-01-11T16:07:02.360 に答える