В ExpressJS, установленном поверх NodeJS, у меня есть немного кода, подобного этому:
app.get('/keys/readresults/:keyname', basic_auth, function(req,res){
res.writeHead(200, {'content-type': 'text/json'});
setInterval(
go_to_database_and_get('stuff', function (database_replies) {
res.write(database_replies)
})
,5000);
});
Код написан так для простоты (если кому-то нужен настоящий код, я с удовольствием выложу его в каком-нибудь пастбине).
Что происходит, когда я curl -u username:password <a href="http://localhost:4000/keys/readresults/key" rel="noreferrer">http://localhost:4000/keys/readresults/key</a>
именно то, что я хотел, чтобы получить: я получаю заголовок статуса 200, он проверяет базу данных на любые результаты, которые я хочу, и пишет ответ мне, затем ждет 5 секунд и ищет новые результаты в базу данных и снова записывает ответ, и так каждые 5 секунд.
Проблема в том, что когда я выхожу из curl, цикл продолжается вечно. Как мне сообщить express или nodejs, что он должен завершить этот цикл (думаю, с помощью clearInterval) , как только запрос закончится?