Я вижу, как скомпилировать материал, используя потоки Node.js, но как вы соединяете несколько сценариев вместе с помощью Unix |
, учитывая, что некоторые из этих скриптов могут быть асинхронными?
$ ./a.js | ./b.js
Пример:
a.js (chmod 0755)
#!/usr/bin/env node
setTimeout(function(){
console.log(JSON.stringify({ foo: 'bar' }));
}, 10);
b.js (chmod 0755)
#!/usr/bin/env node
console.log(process.argv);
Это вывод:
$ ./a.js | ./b.js
[ 'node', '/Users/viatropos/tests/b.js' ]
events.js:72
throw er; // Unhandled 'error' event
^
Error: write EPIPE
at errnoException (net.js:883:11)
at Object.afterWrite (net.js:700:19)
На первый взгляд кажется, что там много чего не так, поэтому не совсем уверен, с чего начать. Есть ли способ заставить это работать? Конечная цель состоит в том, чтобы иметь возможность выводить console.log
вывод из ./a.js
и использовать его в ./b.js
. Причина в том, что в большинстве случаев эти скрипты будут запускаться по одному, но иногда было бы неплохо иметь возможность связывать их вместе, поэтому в идеале система должна иметь возможность обрабатывать оба случая.