Node.js中的简单Hello World问题

时间:2011-07-26 18:46:36

标签: node.js

我是node.js的新手,拥有这个非常简单的代码。我只想对连接到服务器的用户每秒说一个Hi用户。 这是我的代码:

var http = require('http');

function newfunc(request, response) {
  response.writeHead(200, {
    "Content-Type": "text/plain",
    "connection" : "keep-alive"
  });
  setInterval(function() {
    response.write('Hi User\n');
    response.end('');
  }, 1000);
}
http.createServer(newfunc).listen(7070);

我只看到Hi User消息一次,好像setInterval只写了一次。 我在这做错了什么?

1 个答案:

答案 0 :(得分:1)

编辑:我在评论中得到纠正......只需删除response.end()电话,您就会看到类似于您的期望。

原始响应:您尝试做的事情无法以这种方式完成......对HTTP请求的响应只发送一次:调用response.end()时(第一次)。 评论者指出这不是真的正确:在调用end()后,在回复中不能再发送更多数据是正确的。

如果要根据服务器端操作显示内容每秒更改一次的HTML页面,则需要使用类似WebSockets的内容(例如,节点兼容的http://socket.io/库)和一些客户端Javascript ,这比你上面的代码要复杂一些。 一般而言,对于不仅仅附加到响应或进行双向通信的非平凡UI,这种方法是可取的