【发布时间】:2016-12-05 08:19:26
【问题描述】:
我有一个简单的 nodeJS 服务器,它从另一台服务器获取数据并将它们存储在 JSON 文件中,我需要编写有关获取和生成的每个文件的状态,但这不起作用,因为我必须执行响应。 end(),这意味着我不能在不结束流的情况下再次写入流
这是我的代码:
var http = require('http');
var module = require('fs');
var APIs = [ '/servlet/en', '/servlet/fr' ];
var langs =[ 'en', 'fr' ];
var finish = false;
var host = 'http://www.localtest';
const port = process.argv[2] || 9000;
var responses = [];
http.createServer(function (req, response) {
for (x in APIs){
console.log(x);
var options = {
host: 'localtest',
port: 8888,
path: APIs[x],
lang: langs[x]
};
http.get(options, function(res) {
res.setEncoding('utf8');
var body='';
res.on('data', function(chunk){
body += chunk;
});
res.on('end', function(chunk){
responses.push(body);
if (responses.length == 2){
var d = JSON.parse(responses[1]);
var d2 = JSON.parse(responses[0]);
module.writeFileSync("options.lang1"+".json",JSON.stringify(d) , 'utf-8');
module.writeFileSync("options.lang2"+".json",JSON.stringify(d2) , 'utf-8');
}
});
});
}
}).listen(parseInt(port));
console.log(`Server listening on port ${port}`);
一个例子,我试图在该行之后给用户写一条消息: 响应.push(body); 使用 response.write(),但此方法需要 response.end() 才能在浏览器上执行和显示,如果我这样做,我将无法再写入流!
【问题讨论】:
-
它没有回答我的问题!!!!
-
也许我误解了这个问题。想澄清一下吗?为什么你认为做“response.end()”会成为一个问题?
-
我不知道,我是nodeJS的新手,但是当我第一次写入流时,我不能再这样做了!
-
考虑在代码中展示您尝试实际解决问题的方法。
标签: node.js