如何将GET api写入node.js中的现有文件

时间:2016-03-16 11:50:00

标签: javascript node.js api http get

我正在尝试从2个不同的网络API(电池状态和联系人)中获取一些基本数据并将其写入我的.txt文件

但是,当我这样做时,只会写入一个数据,就像它会覆盖另一个数据一样。

我知道我的代码可能看起来很糟糕,但我是新手,我真的需要帮助。

代码

//GET - Battery status
var options = {
    host: 'www.w3.org',
    port: 80,
    path: '/work'
};

http.get(options, function (response) {
    console.log("Response: " + response.statusCode);
    console.log("Header:" + JSON.stringify(response.headers));
    fs.writeFile("external-api.txt", "Responsecode:" + response.statusCode + "\nHeaders:" + JSON.stringify(response.headers))       
}).on('error', function (e) {
    console.log("Napaka!: " + e.message);
});

//GET ZAHTEVE - Contacts
var options = {
    host: 'www.google.com',
    port: 80,
    path: '/work'
};

http.get(options, function (response) {
    console.log("Odgovor: " + response.statusCode);
    console.log("Header:" + JSON.stringify(response.headers));
    fs.writeFile("external-api.txt", "Responsecode:" + response.statusCode + "\nHeaders:" + JSON.stringify(response.headers))
}).on('error', function (e) {
    console.log("Napaka!: " + e.message);
});

结果 enter image description here

任何人都可以告诉我,我做错了什么?

2 个答案:

答案 0 :(得分:3)

根据Node.js docs

  

fs.writeFile(file, data[, options], callback)

     

异步将数据写入文件,替换文件(如果已存在)。数据可以是字符串或缓冲区。

所以,你要找的是:

  

fs.appendFile(file, data[, options], callback)

     

将数据异步附加到文件,如果不存在则创建文件   但是存在。数据可以是字符串或缓冲区。

希望这有帮助

答案 1 :(得分:1)

为什么不使用fs.appendFile。

 fs.appendFile('message.txt', 'data to append', function (err) {

});