将条件语句插入到process.stdin的可读stream中

那么,我试图将一个简单的if语句传递给NodeJS中的一个process.stdin可读stream。 但它似乎不工作。 代码如下:

process.stdin.on('readable', function() { var chunk = process.stdin.read(); if (chunk !== null && chunk == 'foo') { process.stdout.write('true\n'); } else if (chunk !== null) { process.stdout.write('false\n'); } 

有谁知道,我在这里做错了什么? 我也试过chunk == 'foo\n'但是,没有运气。 它唯一的工作是当我设置块值为一个数字,如chunk == 10

这里的问题是该块是缓冲区types,而不是一个string。 您可以使用chunk.toString()将其设置为string,然后将其与foo\n (如果在Linux上)或foo\r\n (如果在Windows上)进行比较,

所以你的代码看起来像这样:

 process.stdin.on('readable', function() { var chunk = process.stdin.read(); if (chunk !== null && chunk.toString() == 'foo\n' || 'foo\r\n') { process.stdout.write('true\n'); } else if (chunk !== null) { process.stdout.write('false\n'); } });