当前位置: 首页 > 面试题库 >

使用Node.js将对象写入文件

伯俊弼
2023-03-14
问题内容

我已经在stackoverflow / google上搜索了所有内容,但似乎无法弄清楚。

我正在抓取给定URL页面的社交媒体链接,并且该函数返回带有URL列表的对象。

当我尝试把这些数据写入到不同的文件,将其输出到文件[object Object],而不是预期:“
https://twitter.com/#!/101Cookbooks ”,’
http://www.facebook.com/ 101cookbooks
‘]就像我console.log()得到结果时一样。

这是我在Node中读写文件,尝试读取每一行(URL)并通过函数调用输入的悲伤尝试request(line, gotHTML)

fs.readFileSync('./urls.txt').toString().split('\n').forEach(function (line){
    console.log(line); 
    var obj = request(line, gotHTML); 
    console.log(obj); 
    fs.writeFileSync('./data.json', obj , 'utf-8'); 
});

供参考- gotHTML函数:

function gotHTML(err, resp, html){ 
    var social_ids = [];

    if(err){
        return console.log(err); 
    } else if (resp.statusCode === 200){ 
        var parsedHTML = $.load(html);

        parsedHTML('a').map(function(i, link){
            var href = $(link).attr('href');
            for(var i=0; i<socialurls.length; i++){
                if(socialurls[i].test(href) && social_ids.indexOf(href) < 0 ) {
                    social_ids.push(href); 
                }; 
            }; 
        })
    };

    return social_ids;
};

问题答案:

obj 是您的示例中的数组。

fs.writeFileSync(filename,data,[options])
需要StringBuffer在data参数中。参见文档。

尝试以字符串格式编写数组:

// writes 'https://twitter.com/#!/101Cookbooks', 'http://www.facebook.com/101cookbooks'
fs.writeFileSync('./data.json', obj.join(',') , 'utf-8');

要么:

// writes ['https://twitter.com/#!/101Cookbooks', 'http://www.facebook.com/101cookbooks']
var util = require('util');
fs.writeFileSync('./data.json', util.inspect(obj) , 'utf-8');

编辑:在示例中看到数组的原因是因为节点的实现console.log不只是调用toString,而是调用util.format see
console.js源代码



 类似资料:
  • 我正在编写一个python程序,可以循环reddit提交,提取数据,并将其作为对象存储在列表中。但是,我在将该列表写入csv文件时遇到困难。文件已创建,但它只是为对象提供某种id标记。我应该如何更改csv代码? 代码 CSV文件

  • 问题内容: 我想创建一个简单的日志系统,该日志系统使用Node.js将前一行之前的一行打印到txt文件中,但是我不知道Node.js中的文件系统如何工作。有人可以解释吗? 问题答案: 将数据插入文本文件的中间不是一件容易的事。如果可能,应将其附加到文件末尾。 将数据追加到一些文本文件的最简单方法是使用来自模块的内置函数: 但是,如果您想多次将数据写入日志文件,那么最好改用function: 每次您

  • 问题内容: 在boto 2中,可以使用以下方法写入S3对象: Key.set_contents_from_string() Key.set_contents_from_file() Key.set_contents_from_filename() Key.set_contents_from_stream() 是否有boto 3等效项?将数据保存到S3上存储的对象的boto3方法是什么? 问题答案:

  • 问题内容: 我在javascript中有一个JSON对象。我只想将JSON对象写入文本文件。到目前为止,从我遇到的情况来看,由于客户端的安全问题,无法这样做。有解决方法吗?如果最初放置一些虚拟值,是否可以修改已经存在的文件? 谢谢 问题答案: 您可以做的一件事就是将JSON设置为即时下载。 工作演示:http : //jsfiddle.net/sLq3F/ 除此之外,由于安全原因,您无法在客户端的

  • 问题内容: 我有一个“ Example” Pojo类,如下所述。可以使用杰克逊的任何电话来将Example类的实例保存到YAML文件中。 } 问题答案: Jackson具有支持YAML的模块。确保将必需的依赖项添加到项目中,然后可以按以下方式使用它: 或者,您可以将对象写为字符串:

  • 问题内容: 我有一个示例数组如下 我想将此数组写入文件,例如我得到的文件如下 问题答案: 如果它是一个巨大的数组,并且在写入之前需要太多内存才能将其序列化为字符串,则可以使用流: