Как запустить функцию скрипта, который уже запущен из консоли | NodeJS

nodejs скрипт был запущен на сервере через консоль.

nodejs script.js

Можно ли как-то прям из консоли выполнить одну из функцию этого скрипта?

Например:

//script.js
let timer = null;

function stopLoop() {
  self.clearInterval(timer);
  timer = null;
}

timer = self.setInterval(() => {
  console.log('loop');
}, 1000);
<div>Без него не дает вставить фрагмент</div>

Запускаю скрипт:

nodejs script.js

И в любой момент времени вызываю его функцию:

nodejs script.js:stopLoop

Возможно ли такое реализовать?


Ответы (1 шт):

Автор решения: ksa

Как запустить функцию скрипта, который уже запущен из консоли

Для этого сам скрипт должен уметь обрабатывать ввод из той консоли. Вот небольшой пример. Вводи команды (stop или close) скрипт будет реагировать на них

const readline = require('node:readline/promises')

const rl = readline.createInterface({
    input: process.stdin,
    output: process.stdout,
});

rl.on('line', line => {
    const com = line.toLowerCase()
    if (com === 'stop') stopLoop()
    if (com === 'close') rl.close()
});

rl.on('close', _ => {
    console.log('Обработка ввода завершена');
});

const timer = setInterval(() => {
    console.log('loop');
}, 1000);

function stopLoop() {
    clearInterval(timer);
    console.log('Таймер остановлен');
}
→ Ссылка