我期待一个定义。我有时会阅读NodeJs教程或书籍中的“节点核心对象”,但我没有找到任何关于它们的先前的解释。
答案 0 :(得分:0)
Node.js基于JavaScript。正如您可能知道的那样,JavaScript并没有在更大程度上完全支持OOPS。 Node的核心模块不使用对象流,部分原因是还没有真正的用例。但是,我们可以通过使用objectMode选项在我们自己的代码中使用对象流。当在objectMode中,流可以推送字符串和缓冲区以及任何其他JavaScript对象。另一个主要区别是,在objectMode中,内部缓冲算法计算对象而不是字节。这意味着如果我们有一个将highWaterMark选项设置为5的Transform流,则该流将仅在内部缓冲最多5个对象。 例如: -
var through2 = require('through2')
var split2 = require('split2')
var stream = through2({ objectMode: true }, function(chunk, enc, callback) {
var string = chunk.toString()
var result = string.replace(/\n/, '').toUpperCase().split(/[ \t]/)
this.push(result)
callback()
})
stream.on('data', function(data) {
var toString = Object.prototype.toString.call(data)
console.log('type of data:', toString)
console.log('data:', data, '\n')
})
process.stdin
.pipe(split2())
.pipe(stream)
输出将是: -
Hello world
type of data: [object Array]
data: ["HELLO", "WORLD"]
Transform streams are great!
type of data: [object Array]
data: ["TRANSFORM", "STREAMS", "ARE", "GREAT!"]