Jestem nowicjuszem w usłudze Node i próbuję upewnić się, że używam rozsądnych projektów dla aplikacji internetowej opartej na JSON.Najlepszy wzorzec obsługi pętli asynchronicznej w pliku Node.js
Mam kilka danych przechowywanych w Redis i odbieram je przez węzeł, przesyłając wyniki, gdy pochodzą z Redis. Tutaj jest dobrym przykładem tego, co robię:
app.get("/facility", function(req, res) {
rc.keys("FACILITY*", function(err, replies) {
res.write("[");
replies.forEach(function (reply, i) {
rc.get(reply, function(err, reply) {
res.write(reply);
if (i == replies.length-1) {
res.write("]");
res.end();
}
else
res.write(",");
});
});
});
});
Zasadniczo jestem coraz zestaw kluczy z Redis, a następnie każdy z prośbą, streaming z wyniku w pół-ręcznie utworzonego JSON (struny wychodzi Redis są już w JSON). Teraz to działa ładnie, ale nie mogę przestać myśleć, że i == replies.length-1 jest trochę zaniedbany?
Mogłem to wszystko zrobić z mgetem w Redis, ale to nie jest naprawdę punkt, który próbuję zdobyć; najlepiej obsłużyć pętlę asynchroniczną za pomocą forEach, przesyłając strumieniowo dane wyjściowe i płynnie zamykając połączenie za pomocą polecenia res.end z zapętleniem.
Czy to najlepszy sposób, czy też istnieje bardziej elegancki wzór, który mogę zastosować?
do głębokich zagnieżdżonych wywołań zwrotnych funkcyjnych chciałbym użyć asynchronicznie Biblioteka .js. – BRampersad