Чтобы ваш скрипт выводился на стандартный вывод, вам нужно как-то его выполнить.Ваша первая проблема, однако, заключается в том, что выполнение main.js в том виде, в каком оно есть, фактически ничего не выводит.Вы определяете main()
, но вам нужно явно вызвать функцию где-то вроде:
function main(){
console.log(5);
}
main();
Теперь, если вы запустите node main.js
, вы получите ожидаемое 5
на стандартный вывод.
Вотдве опции для доступа к этому выводу в другом скрипте.
Опция 1: выполнить main.js как дочерний процесс script.js
//script.js
const { exec } = require('child_process');
const child = exec('node main.js', (error, stdout, stderr) => {
if (error) {
throw error;
}
process.stdout.write('Executed main.js and got: ' + stdout)
});
Запуск node script.js
приведет к выводу: Executed main.js and got: 5
Вариант 2: выполнить main.js и направить его вывод в script.js
//script.js
const readline = require('readline');
const rl = readline.createInterface({
input: process.stdin,
output: process.stdout,
terminal: false,
});
rl.on('line', (line) => {
console.log(`Read line: ${line}`);
});
Запуск node main.js | node script.js
приведет к выводу: Read line: 5