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

来源:8-6 写日志

慕运维2471188

2019-05-29

老师好,这段代码中我有个不明白的地方,我在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
}
写回答

2回答

双越

2019-05-30

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

1
3
慕运维2471188
回复
双越
谢谢,之前看的英文档,没注意到那一行对writable的解释。
2019-05-30
共3条回复

慕运维2471188

提问者

2019-05-30

我通过打印

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
0

Node.js+Express+Koa2+Nest.js 开发服务端

从入门到实战,一站式掌握 Node.js+Express+Koa2

4086 学习 · 2015 问题

查看课程