我有一个关于使用Node.js 'request'发送的问题。我有一个作为代理的Node.js应用程序,实际上将请求体转发到另一个服务器。我想要查看上传操作的进度。现在我正在做如下处理:
BROWSER
-> UPLOAD TO NODE
-> UPLOAD TO 3rd PARTY SERVICE
-> RETURN 3rd PARTY RESPONSE TO BROWSER
如果可能的话,我会记录并在console.log中检查完成进度。但是,是否也可以返回一个?
res.send(progress)
同时,在等待上传完成并发送客户端上传成功的过程中?
BROWSER
-> UPLOAD TO NODE
-> UPLOAD TO 3rd PARTY SERVICE
-> RETURN progress <-
-> RETURN progress <-
...etc.
-> RETURN 3rd PARTY RESPONSE TO BROWSER
这是上传代码(非常直接)。
var requestOptions = {
timeout: 120000,
url: url, //URL to hit
method: 'post',
headers: headers,
body: payload //Set the body as a string
};
request(requestOptions, function (error, response, body) {
if (error) {
res.send(error);
}
else {
//res.sendStatus(response.statusCode);
console.log("[RETURNING RESPONSE BODY]");
res.send(body);
}
});
res.write()
发送请求更新。当上传完成后,使用res.end()
。 - AdityaParab