В 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);
});
Код написан так для простоты (если кому-то нужен настоящий код, я с радостью опубликую это в каком-то pastebin).
Что происходит, когда я curl -u username: password http: // localhost: 4000 / keys / readresults / key
, именно то, что я хотел: получить заголовок состояния 200, он проверяет базу данных на любые результаты, которые я хочу, и записывает ответ мне, затем ждет 5 сек. находит и ищет новые результаты в базе данных и снова записывает ответ, и т. д. каждые 5 секунд.
Проблема в том, что когда я выхожу из curl, цикл продолжается вечно. Как мне сообщить express или nodejs, что он должен завершить этот цикл (полагаю, с помощью clearInterval) , как только запрос закончится?