ExpressJS: Как узнать, когда запрос завершен?

В 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) , как только запрос закончится?

9
задан João Pinto Jerónimo 15 August 2011 в 08:19
поделиться