何时在节点中调用res.on(end)
When is res.on(end) called in node
我有以下相当简单的代码(在coffeescript中):
http = require 'http'
options =
hostname: 'somewebsite.com'
port: 80,
path: '/'
server = http.createServer (request, response) ->
response.writeHead 200, 'text/html'
req = http.get options, (res) ->
res.on 'data', (data) ->
console.log 'GETTING IT'
response.write data
res.on 'end', () ->
console.log 'GOT IT'
response.end()
server.listen 80
我的印象是,一旦请求完成,就会调用res.on'end',但每当我执行代码时,就会多次调用回调。有什么帮助吗?
所以,我在这里遇到的问题不是res.on('end')
被多次调用,而是我发出了多个请求,因为对服务器的每个请求都是通过这个循环处理的。因此,当它试图加载favicon时,它将再次经历整个过程,当它尝试加载任何css文件或我"代理"的文件的html中包含的任何其他文件时,它会再次经历该部分的过程。
看看这个例子,我认为它将有助于澄清代码中发生的事情。点击以下两个网址localhost:8888和localhost:99999
http = require 'http'
somePortNum = 9999
options =
hostname: 'localhost'
port: somePortNum,
path: '/'
proxyServer = http.createServer (request, response) ->
response.writeHead 200, 'text/html'
response.write 'This server is a proxy server, we will make a request to the server on localhost:9999 and post the response below:'n'
req = http.get options, (res) ->
res.on 'data', (data) ->
response.write data
res.on 'end', () ->
response.end()
proxyServer.listen 8888
server2 = http.createServer (request, response) ->
response.writeHead 200, 'text/html'
response.write 'This is a very simple server, it just says hello world'
response.end()
server2.listen somePortNum
相关文章:
- 使用 jQuery 的 .on 函数如何获取事件的原始元素
- I'我设计了一个下拉菜单,onclick会出现,而on blur会消失
- window.on.scroll事件未启动
- Socket.io on Mozilla Rhino
- CSS中的游标属性似乎不适用于USB On The Go
- jQuery点击ON现在使用.load触发关闭
- JQuery.on(“keydown”)追加到页面时不工作
- 使用.on动态添加jquery/js不知道的html元素
- angularjs$valid-on-dates在firefox中报告错误
- addEventListener on NodeList
- 当我在节点上拖动鼠标时,我如何防止使用d3.ehavior.zoom().on(“缩放”,重绘)
- jQuery 1.7.2:.on()在一个页面上工作;Don’别再干别的了
- Jquery on单击“显示信息”
- Node Express Server request.on('end') 只为 Get 触发
- 何时在节点中调用res.on(end)
- Script.aculo.us拖动'n'Drop-Revert on End条件
- 如何在res.on('end', function()){内循环.}以及res.on('end)
- 如何侦听在' request.on('end', '中发生的错误
- 流中的回调('data')和on('end')以及Mongoose.js
- kineticJS“;Box.on ('dragend', alert("drag end&q