2012-06-04 38 views
0

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

我想从流中读取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

完整的Javascript表达式不一定是有效的JSON序列化,例如, { foo: 'bar' }是一个有效的JS表达式,但是无效的JSON(JSON需要双引号的对象键和字符串文字)。如果你的知道你的JSON对象将总是以换行符结束,你可以在一个变量中累加行,尝试JSON.parse()直到你成功(一个不成功的JSON.parse()会抛出一个SyntaxError),但这不会让你检测你输入中的错误(你只会永远累积线)。如果您提供更多关于您希望获得什么以及如何获得的详细信息,则可能有其他更合适的方法。