2012-06-04 111 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),但這不會讓你檢測你輸入中的錯誤(你只會永遠累積線)。如果您提供更多關於您希望獲得什麼以及如何獲得的詳細信息,則可能有其他更合適的方法。