Którego ORM powinienem użyć do Node.js i MySQL? [zamknięte]

Przepisuję projekt do użycia Node.js. Chciałbym nadal używać MySQL jako DB (chociaż nie mam nic przeciwko przepisaniu schematu). Szukam prostego w użyciu, rozsądnej wydajności ORM, który obsługuje buforowanie, relacje many-to-one I many-to-many. Z MySQL ORMs mogę znaleźć, persistencejs i sequelize wydają się najbardziej dojrzałe. Masz doświadczenie z którymś z nich? Jakie są istotne plusy i minusy, których powinienem być świadomy w swojej decyzji?

Author: hughc, 2011-05-15

4 answers

Czy mogę zaproponować Node ORM?

Https://github.com/dresende/node-orm2

Jest dokumentacja na Readme, obsługuje MySQL, PostgreSQL i SQLite.

MongoDB jest dostępny od wersji 2.1.x (wydany w lipcu 2013)

 88
Author: dresende,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-07-23 10:04:57

Wybrałbym Sequelize ze względu na doskonałą dokumentację. To tylko szczera opinia (nigdy tak naprawdę nie używałem MySQL z Node).

 125
Author: alessioalex,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-05-24 09:22:36

Po pierwsze, proszę zauważyć, że nie używałem żadnego z nich (ale użyłem Node.js).

Obie biblioteki są dość dobrze udokumentowane i mają stabilne API. Jednak wytrwałość.js wydaje się być używany w większej liczbie projektów . Nie wiem, czy wszyscy nadal go używają.

Twórca sequelize czasami bloguje o tym na blog.depold.com . Jeśli chcesz używać kluczy podstawowych jako kluczy obcych, będziesz potrzebował łatki opisanej w w tym poście na blogu . Jeśli potrzebujesz pomocy za wytrwałość.js istnieje grupa google poświęcona temu.

Z przykładów wnioskuję, że sequelize jest trochę bardziej podobny do JavaScript (więcej cukru) niż persistance.js, ale ma wsparcie dla mniejszej ilości magazynów danych (tylko MySQL, natomiastjs może nawet korzystać ze sklepów w przeglądarce).

Myślę, że sequelize może być dla Ciebie drogą, ponieważ potrzebujesz tylko wsparcia MySQL. Jeśli jednak potrzebujesz wygodnych funkcji (np. wyszukiwania) lub chcesz skorzystać z innej bazy danych później będziesz musiał użyć uporu.js.

 19
Author: hey_lu,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2012-01-21 21:10:30

Jedna zasadnicza różnica między Sequelize a Persistence.js polega na tym, że pierwszy obsługuje typ danych STRING, tj. VARCHAR(255). Czułem się naprawdę nieswojo robiąc wszystko TEXT.

 9
Author: Josh Smith,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2011-12-04 20:53:05