首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >是否有方法使用node.js中的文件系统(fs)将动态数据写入文件。我试过了,但在文件中正在接收[object对象]

是否有方法使用node.js中的文件系统(fs)将动态数据写入文件。我试过了,但在文件中正在接收[object对象]
EN

Stack Overflow用户
提问于 2021-07-01 23:59:55
回答 2查看 319关注 0票数 0

我在另一个文件中有一个eventEmitter类(Logger),它将用uuid记录消息对象。我打算把那条消息写在一个文件里。

代码语言:javascript
复制
const Logger = require('./Logger')
const fs = require('fs')
const path = require('path')

// instantiate a new logger 

const logger = new Logger()

logger.on('message', data => {
    console.log('Called Listener:', data)

   fs.appendFile(path.join(__dirname, '/logger', 'logger.txt'), `\n ${data}`, err => {
        if (err) throw err
        console.log('file written...')
    })
   
})


logger.log('Hello there')

//任何建议都可能有帮助

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2021-07-02 00:19:25

虽然可以用console.log编写一个对象,但如果不对其进行字符串化,则无法将其添加到字符串中:

代码语言:javascript
复制
fs.appendFile(path.join(__dirname, '/logger', 'logger.txt'), `\n ${JSON.stringify(data)}`, err => {
    if (err) throw err
    console.log('file written...')
})

当您试图向字符串中添加一个变量时,JS运行时会隐式地调用它的.toString()。这将导致对象的[object object]

票数 0
EN

Stack Overflow用户

发布于 2021-07-02 00:24:30

您的记录器发出的是一个对象,而不是字符串。您可能需要更像${data.uuid} - ${data.log}的东西。

更重要的是,每次追加文件时,您都要从操作系统请求一个新的文件描述符,然后关闭它。这是低效的,你为自己创造了一个竞赛条件。如果你要做的事

代码语言:javascript
复制
for(let i=0;i<1000;i++)
  logger.log(i.toString());

您很难在文件中看到1000行。

你想要的更像是

代码语言:javascript
复制
const Logger = require('./Logger')
const fs = require('fs')
const path = require('path')

// instantiate a new logger 

const logger = new Logger()

// Create write stream
const wstream = fs.createWriteStream(
  path.join(__dirname, '/logger', 'logger.txt'), 
  { 
    flags: 'a', // append to file
    autoClose: false // leave fd open for more writing after buffer empties
  }
);
logger.on('message', data => {
  console.log('Called Listener:', data)
  wstream.write(`${data.uuid} - ${data.log}\n`); 
})
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/68218129

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档