Class: stream.Writable
stream.Writable
is an abstract class designed to be extended with an underlying implementation of the stream._write(chunk, encoding, callback)
method.
Please see API for Stream Consumers for how to consume writable streams in your programs. What follows is an explanation of how to implement Writable streams in your programs.
new stream.Writable([options])
-
options
<Object>-
highWaterMark
<Number> Buffer level whenstream.write()
starts returningfalse
. Default =16384
(16kb), or16
forobjectMode
streams. -
decodeStrings
<Boolean> Whether or not to decode strings into Buffers before passing them tostream._write()
. Default =true
-
objectMode
<Boolean> Whether or not thestream.write(anyObj)
is a valid operation. If set you can write arbitrary data instead of onlyBuffer
/String
data. Default =false
-
write
<Function> Implementation for thestream._write()
method. -
writev
<Function> Implementation for thestream._writev()
method.
-
In classes that extend the Writable class, make sure to call the constructor so that the buffering settings can be properly initialized.
writable._write(chunk, encoding, callback)
-
chunk
<Buffer> | <String> The chunk to be written. Will always be a buffer unless thedecodeStrings
option was set tofalse
. -
encoding
<String> If the chunk is a string, then this is the encoding type. If chunk is a buffer, then this is the special value - 'buffer', ignore it in this case. -
callback
<Function> Call this function (optionally with an error argument) when you are done processing the supplied chunk.
All Writable stream implementations must provide a stream._write()
method to send data to the underlying resource.
Note: This function MUST NOT be called directly. It should be implemented by child classes, and called by the internal Writable class methods only.
Call the callback using the standard callback(error)
pattern to signal that the write completed successfully or with an error.
If the decodeStrings
flag is set in the constructor options, then chunk
may be a string rather than a Buffer, and encoding
will indicate the sort of string that it is. This is to support implementations that have an optimized handling for certain string data encodings. If you do not explicitly set the decodeStrings
option to false
, then you can safely ignore the encoding
argument, and assume that chunk
will always be a Buffer.
This method is prefixed with an underscore because it is internal to the class that defines it, and should not be called directly by user programs. However, you are expected to override this method in your own extension classes.
writable._writev(chunks, callback)
-
chunks
<Array> The chunks to be written. Each chunk has following format:{ chunk: ..., encoding: ... }
. -
callback
<Function> Call this function (optionally with an error argument) when you are done processing the supplied chunks.
Note: This function MUST NOT be called directly. It may be implemented by child classes, and called by the internal Writable class methods only.
This function is completely optional to implement. In most cases it is unnecessary. If implemented, it will be called with all the chunks that are buffered in the write queue.
Please login to continue.