循环节点js后将数组写入文件

时间:2016-11-17 22:02:43

标签: javascript arrays node.js

我还没有找到问题的答案,其中包含其他人提出的问题。 我写了一个小的web scraper,它将数据存储到1个数组,并希望将它(数组)写入文件。我无法正确设置。

我正在使用nodejs。有人可以编写一个采用数组内容然后写入文件的示例。请把它分解为基础,我仍然是编程的新手。

感谢代码在下面

var content = [];
var request = require('request');
var cheerio = require('cheerio');
var URL = 'http://www.amazon.com';



 request(URL, function(error, response, html){

   if (error){

       consol.log('Error:', error);
   }
   if (response.statusCode !== 200) {

       console.log('Invalid Status Code Returned:', response.statusCode);
   }

   //console.log(html);
      var $ = cheerio.load(html);


    $('td').each(function (i, element) {


        var a = $(this).next();
        var trimmed_a = a.text();

        trimmed_a = trimmed_a.trim();
        var str = trimmed_a.replace(/\s\s+/g,"");
        var newStr = str.trim();

        content.push(newStr);



    });

    console.log(content);

})

2 个答案:

答案 0 :(得分:2)

最简单的答案:

var fs = require('fs');
var arr = ['cat','dog','bird'];
var filename = 'output.txt';
var str = JSON.stringify(arr, null, 4);

fs.writeFile(filename, str, function(err){
    if(err) {
        console.log(err)
    } else {
        console.log('File written!');
    }
});

此处,arr将是您的数据数组,因为fs.writeFile expects a string,您需要将其转换为字符串。我使用null,4个附加参数使其非常漂亮,因此您可以使用四个空格缩进来查看它。

希望这有帮助!

答案 1 :(得分:0)

无法将真实数组/对象存储在文件中 - 其内容是字节,但是您可以存储此对象的字符串格式,然后使用JSON解析相同的格式(我认为这个ref等于Node.js):

json_format = JSON.stringify(content)
var json_format

因此,如果要在获取其内容后读取文件中的数组

JSON.parse(json_format)

提醒,在JSON中没有任何函数声明,除NaNInfinityundefined(不是值)等外,都支持所有原始值,等等,并且仍然包含特殊数字语法(指数(+ | - ),...):JSON。 JSON不支持的所有值,JSON.stringify将它们视为null。我不确定它在不同平台之间的确切作用(我只使用浏览器JS)。

现在,保存/写入我们当前拥有的文件 异步fs.writeFile和同步fs.writeFileSync。不过,我对Node.js了解不多。使用这些方法时,必须在某处包含文件系统,通常是这样(文件系统在模块中):

fs = require('fs'); var fs