Zamierzam zbudować aplikację używającą wielu interfejsów, aby użytkownik mógł wstawiać dane, które powinny być przechowywane w bazie danych. Przed użyciem Symfony2 tworzyłem aplikacje w PHP. Teraz chcę użyć node.js, ale nie jestem pewien, czego używać expressjs, backbonejs, railwayjs. Do aplikacji potrzebuję struktury MVC, walidacji formularzy i dobrego ORM bazy danych. Którego z tych 3 powinienem użyć? Jaka jest główna różnica między nimi?

5
dplusm 17 luty 2012, 22:44

2 odpowiedzi

Najlepsza odpowiedź

Jeśli pochodzisz z bogatego frameworka, takiego jak Rails lub Symfony, twoim wyborem jest RailwayJS, ale jeśli lubisz coś minimalistycznego i niezbyt dobrze skonstruowanego, użyj ExpressJS.

Jaka jest główna różnica między nimi?

RailwayJS jest rozszerzonym ExpressJS z routingiem, kontrolerami, lokalizacją, generatorami, bogatym logowaniem, ORM i innymi funkcjami wbudowanymi bezpośrednio przez expressjs. Ale ogólnie można go używać w taki sam sposób jak express: oprogramowanie pośrednie, trasy ekspresowe, testy itp. Aby można było użyć dowolnego oprogramowania pośredniego napisanego dla express/connect, należy je po prostu umieścić w odpowiednim miejscu (config/environment.js dla common env lub config/environments/{development|production}.js dla specyficznych dla środowiska.

5
Anatoliy 18 luty 2012, 22:04

Express staje się mniej więcej de facto wyborem dla frameworka do tworzenia stron internetowych. Możesz całkowicie za jego pomocą tworzyć MVC, widok jest twoim silnikiem szablonów (na przykład jade), modelem dostarczanym przez twój ORM (mongusta to doskonały wybór, jeśli korzystasz z MongoDB) i twoimi procedurami obsługi tras/logiką aplikacji/ oprogramowanie pośredniczące będące kontrolerem.

Backbone zapewnia strukturę MV* do rozwoju po stronie klienta, więc jest komplementarny (i niezależny od) dowolnej wybranej struktury lub biblioteki po stronie serwera. Istnieje wiele opcji organizacji kodu MVC lub MVVM po stronie klienta, takich jak knockout.js i ember.js, ale osobiście wolę Backbone, który ma mniej magii, ale zapewnia większą kontrolę. Jest to jednak stosunkowo subiektywne, więc nie jest to istotna debata na temat przepełnienia stosu.

4
mna 18 luty 2012, 05:35