Node.js REPL中的“read”

时间:2012-06-04 19:44:55

标签: node.js read-eval-print-loop

Node.js中是否有一个函数从流中读取字符,直到它读取完整的JavaScript表达式并返回该表达式? read-eval-print循环的“读取”部分?

我想从流中读取JSON对象并在它们进入时对它们进行处理。在这个用例中我不需要REPL的交互部分。

{"r": 0.0,
 "e": -0.2,
 "t": 0.98}
// callback happens here with the content of the object

{"r": 0.2,
 "e": 0.0,
 "t": 1.0}
// callback happens here with the content of the object
// etc

1 个答案:

答案 0 :(得分:1)

完整的Javascript表达式不一定是有效的JSON序列化,例如{ foo: 'bar' }是一个有效的JS表达式,但是无效的JSON(JSON需要双引用的对象键和字符串文字)。如果您知道您的JSON对象将始终以换行边界结束,您可以在变量中累积行,尝试JSON.parse()它,直到您成功为止(不成功的JSON.parse()将抛出SyntaxError),但这不允许你检测输入中的错误(你只会永远累积行)。如果您提供有关您希望接收的内容和方式的详细信息,可能还有其他更合适的方法。