Express – res.send()工作一次

我是Node和Express的新手,我试图用Express来制作一些东西,然后才面对这个问题。

第一个res.send()工作正常,但第二个不会启动。

这是我的代码:

 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>'); } }) ... 

发送'Hello',但是res.send('<p> .. </p>'); 不是。 如果我评论res.send('Hello'); ,游客将被显示。

提前致谢。

       

网上收集的解决方案 "Express – res.send()工作一次"

res.send()意味着被调用一次。

试试这个:

 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=...") ,但你得到的重点:)

这是因为res.send()完成发送响应。

res.send('Hello'); 遇到它立即发送响应。 所以下一个res.send不执行,你不能看到访问者。 评论第一个res.send可以让你查看第二个。