Cytat
jakie ograniczenia wg Ciebie posiada node ze nie wybral bys go jeszcze do trzaskania aplikacji tylko dalej siedzisz w php?
Nie chodzi o ograniczenia, ale o problematykę, do której się nie jest przyzwyczajonym. Głównie chodzi o asynchroniczność. Wcześniej mogłeś ją w przeglądarce widzieć jako minimalną różnicę między kolejnością wykonywania warunków, bo po stronie przeglądarki raczej nie tworzy się takich rzeczy jak po stronie serwerowej. W przeglądarce robisz ajax i w jego callbacku wykonujesz co musisz. W node, kiedy masz bezpośredni dostęp do baz danych, spróbuj stworzyć warunek jak w php:
$data = $db->query('select * from tabela limit 10');
{
// do something
} else
{
// tabela is empty
}
To się bardzo zdziwisz, kiedy twój wynik prawie zawsze będzie "tabela is empty". Nie dlatego że jest pusta, ale dlatego że asynchroniczna natura javascriptu nie będzie czekać aż się zapytanie wykona i przypisze jego wynik do zmiennej, tylko od razu przejdzie do warunku, a według warunku, zmienna będzie pusta (w js będzie undefined), ponieważ wynik zapytania nie został jeszcze przypisany. Dla kogoś kto zaczynał od PHP jest to dość nie oczywiste i trzeba się przestawić. Ale i to nie jest aż takim problemem, bo po to się jest programistą. Tyle że potem dość łatwo jest zarazić się chorobą zwaną
callback tree i człowiek zaczyna pisać z użyciem promise. I jest to fajne, ale wymaga to trochę więcej kodu niż w php.
Aktualnie pracuje nad aplikacją w node, do monitoringu i czatu realtime, właściwie to przepisywanie monitoringu i czatu z php do node, bo aktualnie php zwyczajnie nie wyrabia, przy takiej ilości requestów. Tyle że cały jakby dashboard, mimo wszystko zostanie napisany w php, jako restowe api, bo tutaj ta wydajność nie będzie tak kluczowa, raczej wygoda i przyzwyczajenia

PS. Jeżeli chodzi o promise w node, osobiście do gustu przypadł mi
Q, który z tych wszystkich dostępnych libów był najbardziej oczywisty, a
try/catch wewnątrz bloku
then są bardzo użytecznym dodatkiem.