nodejs:检查变量是否为可读流

mdu*_*sch 11 node.js

我如何检查var是否是Nodejs中的可读流?

例:

function foo(streamobj){

   if(streamobj != readablestream){
       // Error: no writable stream
   }else{
      // So something with streamobj 
   }
}
Run Code Online (Sandbox Code Playgroud)

我试过了

if (!(streamobj instanceof stream.Readable)){
Run Code Online (Sandbox Code Playgroud)

但是我得到一个ReferenceError:没有定义流

vku*_*kin 12

你的问题绝对是你没有要求的stream.但.instanceof检查变量是否为可读流不是一个好方法.考虑以下情况:

最好的方法是打字.基本上,如果你打算pipe流,检查它是否有pipe方法,如果你要听事件,检查流是否有on方法等.


mic*_*nic 7

您似乎忘了要求流核心模块.

var stream = require('stream');

// somewhere in the file
if (!(streamobj instanceof stream.Readable)) {
    // Your logic
}
Run Code Online (Sandbox Code Playgroud)