NodeJs writeFile写入"对象对象"在txt文件中而不是对象的实际元素

时间:2016-03-03 22:10:32

标签: javascript node.js writefile

function querydb(){
  cursor = dbConnection.collection("logs").find(queryObj).limit(valueList[1]);

  /*Either decide here to foreach for file or for console OR...*/
  cursor.forEach(function(item){
      /*Decide here whether to write to file or console*/
      if(valueList[0] != null){
        fs.writeFile(valueList[0], item, 'utf-8', console.log("finished!!"));
      }
      if(valueList[0] == null){
        console.log(item);
        console.log("Done");
      }

      /*CHECK TO SEE IF THE CURSOR IS EXHAUSTED*/
      if(cursor == null){
        //now we can close the database
        dbConnection.close();
      }
    }
  );
};

这是我的querydb功能。正如您所看到的,我检查该值是否不等于null,如果它是真的,我调用writeFile。但是在.txt中它只打印"对象对象"。关于什么事情的任何想法?

1 个答案:

答案 0 :(得分:3)

writeFile签名是:

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

所以,你写的数据必须是一个对象。这就是为什么Object Object被写入文件的原因。尝试反序列化"项目"参数如:

 fs.writeFile(valueList[0], JSON.stringify(item), 'utf-8', console.log("finished!!"));