【问题标题】:write array to file after looping node js循环节点js后将数组写入文件
【发布时间】:2016-11-18 06:33:14
【问题描述】:

我还没有通过其他人提出的问题中的示例找到我的问题的答案。 我写了一个小网络爬虫,将数据存储到 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);

})

【问题讨论】:

  • 您需要向我们展示数组中的内容。它只是字符串吗?具有属性的对象?数字?而且,您必须描述您希望文件采用什么格式?向我们展示您的数组格式的数据样本,并向我们展示您希望文件中的格式。
  • @jfriend00 是的......这是网站的价值
  • 你的数组是什么样子的,如果它只是简单的类型,比如字符串数字等。你可以 JSON.stringify,然后将它保存到磁盘。
  • @keith 我编辑了我的帖子..请运行代码
  • 看起来你只是将字符串推入一个数组,它将使用 JSON.stringify 进行序列化而不会出现问题。

标签: javascript arrays node.js


【解决方案1】:

最简单的答案:

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.writeFileexpects a string,您将其转换为字符串。我使用了null,4 附加参数使它打印得漂亮,这样你就可以看到它有四个空格缩进。

希望这会有所帮助!

【讨论】:

  • 数组大于 3 项。我编辑了我的帖子,请参见上文。
  • 没关系,JSON.stringify 将处理数千个项目。
  • @Nb_me - 无论数组有多大,此代码都有效。它只是写出整个数组。
  • 您可以使用任何数组,只需将content 放在我有arr 的字符串化函数中。
  • @jfriend00 这行得通,但有一些差距我必须更好地理解,这样我才能更好地安排事情。
【解决方案2】:

不可能在文件中存储一个真正的数组/对象——它的内容是字节,但是你可以存储这个对象的字符串化格式,然后使用 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

【讨论】:

  • 感谢您最初的解释。真的解开了我的困惑!
猜你喜欢
  • 2016-03-14
  • 1970-01-01
  • 2020-05-18
  • 1970-01-01
  • 2020-02-02
  • 1970-01-01
  • 2014-04-10
  • 2021-03-25
  • 2023-03-20
相关资源
最近更新 更多