"citiți" în Node.js REPL

Există o funcție în Node.js care citește caractere dintr-un flux până când citește o expresie JavaScript completă și returnează expresia respectivă? Partea "citire" a ciclului read-eval-print?

Vreau să citesc obiectele JSON dintr-un flux și să le procesez în timp ce vin. Nu am nevoie de părțile interactive ale REPL în acest caz de utilizare.

{"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
0

1 răspunsuri

A complete Javascript expression is not necessarily a valid JSON serialization, e.g. { foo: 'bar' } is a valid JS expression, but invalid JSON (JSON requires double-quoted object keys and string literals). If you know that your JSON objects will always end on a newline boundary, you can accumulate lines in a variable, trying to JSON.parse() it until you succeed (an unsuccessful JSON.parse() would throw a SyntaxError), but that would not allow you to detect errors in your input (you'll just accumulate lines forever). If you provide more details about what and how exactly you expect to receive, there might be other, more suitable approaches.

0
adăugat