2013-03-06 33 views
8

私はNodeとExpressを使い慣れていません。私はExpressを使用して何かを始めようとしていましたが、この問題に直面しました。Express-res.send()は一度しか動作しません。

最初のres.send()はうまく動作しますが、2番目のものは起動しません。

は、ここに私のコードです:

var express = require('express'), 
    app  = express(), 
    fs  = require('fs'), 
    visits; 


app.listen(8080); 

app.get('/', function(req,res) { 

    res.send('Hello'); 

    fs.readFile('counter.txt','utf-8', function(e,d) { 

     if (e) { 
      console.log(e); 
     } 
     else { 
      console.log(parseInt(d) + 1); 
      fs.writeFile('counter.txt',parseInt(d) + 1); 
      res.send('<p id="c">' + (parseInt(d) + 1) + '</p>'); 
     } 

    }) 
... 

'こんにちは' 送信されますが、res.send('<p> .. </p>');ではありません。私がres.send('Hello');とコメントすると、訪問者が表示されます。

ありがとうございます。

答えて

6

res.send()は、1回だけ呼び出されることを意味します。

app.get('/', function(req,res) { 
    var response = 'Hello'; 
    fs.readFile('counter.txt','utf-8', function(e,d) { 
     if (e) { 
     console.log(e); 
     res.send(500, 'Something went wrong'); 
     } 
     else { 
     console.log(parseInt(d) + 1); 
     fs.writeFile('counter.txt',parseInt(d) + 1); 
     response += '<p id="c">' + (parseInt(d) + 1) + '</p>'; 
     res.send(response); 
     } 
    }) 
}); 

(または単にres.send("Hello<p id=...")が、あなたはポイントを得る:)

+0

ありがとう、私はそれを持っているので、私は一度それを呼び出すと、すぐに私が望むすべてを送信する必要があります。タイ! –

+1

今日私は同じ問題を発見し、このポストは私に多くの+1を助けた:) – Trialcoder

3

res.sendは()レスポンスを送信終了これは、次のとおりです。

ではなく、これを試してみてください。

res.send('Hello');に遭遇するとすぐに応答を送信します。だから次のres.sendは実行されず、訪問者は見えません。最初のres.sendにコメントすると、2番目のものを見ることができます。

関連する問題