请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

writeStream.write(log + '\n') 里的 .write 方法 没找到对应文档

老师好,这段代码中我有个不明白的地方,我在nodejs文档中不确定writeStream.write(log + '\n')里的.write方法是被谁调用的
因为被return出来的writeStream相当于是fs.createWriteStream(fullFileName, {flags: 'a'})得到的结果,但是它为什么可以连接.write呢?
是和fs.write()方法有关吗?
还是和writable.write(chunk[, encoding][, callback])这个方法有关?

const fs = require('fs')
const path = require('path')

// 写日志
function writeLog(writeStream, log) {
    writeStream.write(log + '\n') // 关键代码
}

// 生成 write Stream
function createWriteStream(fileName) {
    // 通过拼接路径找到真正的地址
    const fullFileName = path.join(__dirname, '../', '../', 'logs', fileName)
    const writeStream = fs.createWriteStream(fullFileName, {
        flags: 'a'
    })
    return writeStream
}

// 写访问日志 
const accessWriteStream = createWriteStream('access.log')
function access(log) {
    writeLog(accessWriteStream, log)
}

module.exports = {
    access
}

正在回答 回答被采纳积分+3

2回答

双越 2019-05-30 08:30:15

没太看明白你的问题是什么,一个一个来吧,别一次性提问太多。你先说一个最核心的问题。

1 回复 有任何疑惑可以回复我~
  • 提问者 慕运维2471188 #1
    writeStream.write(log + '\n') 
    
    其中.write方法出自node文档的哪个部分?
    回复 有任何疑惑可以回复我~ 2019-05-30 09:33:22
  • 双越 回复 提问者 慕运维2471188 #2
    http://nodejs.cn/api/stream.html 大标题“可写流”,下面就有示例
    回复 有任何疑惑可以回复我~ 2019-05-30 09:47:47
  • 提问者 慕运维2471188 回复 双越 #3
    谢谢,之前看的英文档,没注意到那一行对writable的解释。
    回复 有任何疑惑可以回复我~ 2019-05-30 10:20:05
提问者 慕运维2471188 2019-05-30 00:00:19

我通过打印

console.log(writeStream.write)

知道了它是一个function函数,即为:

function(chunk, encoding, cb) {......} 

那对应的调用是否为?:

writable.write(chunk[, encoding][, callback])

如果是的话,那为什么要使用这个方法来写入log呢?

https://nodejs.org/dist/latest-v10.x/docs/api/stream.html#stream_writable_write_chunk_encoding_callback

请老师解惑

0 回复 有任何疑惑可以回复我~
问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信