好,
我是node.js的新手.开始尝试,我正在关注Ryan Dahl(http://www.youtube.com/watch?v=jo_B4LTHi3I)的介绍,此时(大约0:17:00)有一个关于如何服务器的解释处理回应,
基本的例子是从webserver获得一个'hello'输出,然后在2秒之后出现'world',这段代码应该这样做
//Require the webserver library
var http = require('http');
var server = http.createServer(function(req, res) {
res.writeHead(200, { 'content-type' : 'text-plain' });
res.write('Hello\n');
//Asynchronous behavior
setTimeout(function() {
res.end('World\n');
}, 2000);
});
server.listen(3000);
Run Code Online (Sandbox Code Playgroud)
所以我运行它,我得到了Hello World,但是只有一个来自服务器的响应有完整的结果,即请求> 2秒>'Hello World'.而不是请求> Hello> 2秒>世界.
为什么?,我该如何改变这种行为?
我正在使用v0.8.18,curl -i http://localhost:3000返回正确的标题...
HTTP/1.1 200 OK
content-type: text-plain
Date: Sat, 26 Jan 2013 18:10:05 GMT
Connection: keep-alive
Transfer-Encoding: chunked
我使用 busboy 模块通过下面的 coffeeScript 代码解析多部分请求。有时,问题是针对包含一个文件的请求多次调用“数据”处理程序。这意味着我需要对每个尺寸求和才能计算出整个尺寸。除了 on 'file' 处理程序中的文件对象似乎不包括大小信息。
如何在不计算每个部分的情况下获得整个尺寸?
提前致谢-
busboy.on 'file', (fieldname, file, filename, encoding, mimetype) ->
filename = "#{Meteor.uuid()}.jpg"
dir = "#{HomeDir()}/data/profile"
saveTo = path.join dir, filename
file.pipe fs.createWriteStream saveTo
files.push
filename: filename
path: saveTo
fileSize: data.length
file.on 'data', (data) ->
# this data handler called several times
files.push
filename: filename
path: saveTo
fileSize: data.length
file.on 'end', ->
console.log 'file finished'
Run Code Online (Sandbox Code Playgroud)