首页 > 解决方案 > 有没有办法使用 node.js 中的文件系统(fs)将动态数据写入文件。我已经尝试过,但在文件中我正在接收 [object object]

问题描述

我在另一个文件中有一个 eventEmitter 类(Logger),它将记录一个带有 uuid 的消息对象。我打算将该消息写入文件中。

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')

//任何建议可能会有所帮助

标签: node.js

解决方案


虽然您可以使用 console.log 写出一个对象,但您不能在不对其进行字符串化的情况下将其添加到字符串中:

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]一个对象。


推荐阅读