node.js - 有没有办法使用 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')
//任何建议可能会有所帮助
解决方案
虽然您可以使用 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]
一个对象。
推荐阅读
- sqlite - 如何在 initstate 中访问未来值?
- python - python pandas - 获取两个数据帧之间的匹配和不匹配记录
- python - Tensorflow 序列到 LSTM 序列
- python - 如果是的话,将关系数据库表存储为弹性搜索中的不同索引是否很好,那么如何在索引中传递关系
- javascript - 如何获取将 servlet 返回到 ajax 的特定字段?
- iframe - Youtube 嵌入显示不需要的顶部栏,即使 showinfo=0
- c - 关于 C 函数
- java - 导入 java.util.* 和 java.util.concurrent.* 的区别
- python - 如何在 matplotlib 中生成密钥
- swift - 可选数组??NSNull() - 表达式太复杂,无法在合理的时间内解决