Che ORM devo usare per Node.js e MySQL?

Sto riscrivendo un progetto per utilizzare Node.js. Mi piacerebbe continuare ad usare MySQL come DB (anche se non mi dispiace la riscrittura dello schema).
Sto cercando un programma semplice da utilizzare, ragionevole prestazioni ORM, che supporta la memorizzazione nella cache, molti-a-uno e molti-a-molti relazioni.
Da MySQL Orm che ho potuto trovare, persistencejs e sequelize sembrare più maturo.
Avete esperienza con entrambi? Quali sono i pro e i contro che ho dovrebbe essere a conoscenza di questa mia decisione?

  • Ma è un tema molto interessante. Ti piacerebbe avere un accesso agli sviluppatori di terze parti per modificare i dati sul tuo sito? Può essere che sia meglio l’idea di creare intermedio libreria js che invia la richiesta di parametri (meta lingua, un backend?
  • Cura di elaborare? Google per la “sospensione di memorizzazione nella cache”.
  • Hm… Alcuni siti permettono le applicazioni utente. O non ho capito, mi scusi, per favore.
  • La cache è in realtà abbastanza importante caratteristica di un certo numero di soluzioni ORM. Guarda Cayenne, per esempio.
  • Tenta Oreo. github.com/will123195/oreo
  • C’è anche Bookshel.js.
  • Ho sviluppato questo ORM che memorizza nella cache l’intero database in memoria. È possibile accedere ai dati in modo sincrono, e il controllo di tutte le modifiche con le transazioni. github.com/jbaylina/syncorm
  • …e chiuso da qualcuno che non conosce né Node.js né MySQL :-/ (solo per ottenere una taglia ?)
  • “chiuso per non costruttivo da Kev” ?! sul serio?… perdona il mio sarcasmo.

 

4 Replies
  1. 98

    Posso suggerire Nodo ORM?

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

    C’è la documentazione sul Readme, supporta MySQL, PostgreSQL e SQLite.

    MongoDB è disponibile a partire dalla versione 2.1.x (uscito nel luglio 2013)

    AGGIORNAMENTO: Questo pacchetto non è più mantenuto, per il progetto README. Si suggerisce, invece, libreria e sequelize

    • Basato su documenti sembra che Sequelize è un passo in avanti di questo progetto.
    • È un altro grande opzione per le persone in cerca di mysql ORM. La sintassi è più complesso, ma troppo bello.
    • il progetto ha cambiato la URL: github.com/dresende/node-orm2
    • Ricevo questo errore “Errore: Impossibile trovare il modulo di “cappello “” quando si tenta di distribuire questo. .. non è la quantità di npm installare o reinstallare sembra aiutare. Qualche suggerimento? Grazie
    • il cappello è una dipendenza del modulo ed è indicato nella confezione.json. Sei sicuro che non c’è niente altro in conflitto con l’installazione?
    • MongoDB non è un ORM.
    • MongoDB “supportato” da ORM in questione..
    • FYI: Sequelize non supporta le istruzioni preparate.
    • Love it! La sintassi è simile al mio preferito front-end framework mvc.
    • Nodo-orm2 non è più mantenuto. Ma un link a sequelize e bookshelf.js.

  2. 143

    Vorrei scegliere Sequelize a causa della sua ottima documentazione. E ‘ solo un parere onesto (non ho mai usato MySQL con il Nodo che più di tanto).

    • Vorrei anche sottolineare che il nodo-orm2 o persistence.js non forniscono un migrazioni meccanismo. persistence.js non supporta postgres. sequelize fa entrambe le cose.
    • nodo-orm2, come di recente ha migrazioni
    • Ho usato il nodo-orm2 e a causa di Sequelize meglio documentazione sono stato in grado di ottenere fino e in esecuzione molto più semplice
    • Sequelize non è più in sviluppo.
    • Dove hai preso questa informazione?
    • beh, quando ero installazione via npm, mi ha detto così. Ma ora posso vedere c’è nuovo commit 3 giorni fa. Ci scusiamo per questo. 🙂
    • Np, @Gelidus. Ero preoccupato perché lo sto usando su un progetto.
    • Purtroppo, la Sequelize documentazione è recentemente diventata terribile. Ho iniziato a usare Sequelize di recente e stato molto contento con la documentazione. Ora è un auto-generata mucchio di link rotti, informazioni non aggiornate, incompleto, esempi. Io ancora bastone con esso, però. No, non è così difficile da imparare.
    • ciao a tutti, qual è la tua opinione su bookselfjs.org ?
    • Appena cancellato il mio vecchio commento e ora ho il 100% d’accordo con @Brad , purtroppo 🙁
    • Sequelize – la documentazione e il supporto è ottimo, ma sei legato con le loro scelte promessa libreria e non c’è il supporto per le istruzioni preparate.
    • non ho mai usato MySQL, con un Nodo molto. Che cosa si preferisce invece?
    • MongoDB per la prototipazione rapida, PostgreSql / Sqlite / LevelDB per il resto.
    • Sequelize non ha db automatico meccanismo di sincronizzazione !
    • Ho appena lottato con sequelize per molte ore e sono completamente frustrato. Non c’è modo di specificare il set di caratteri e di confronto per base di colonna (solo per tavolo o per db di default). Questo è un enorme tappo show per me hanno seri dubbi su questo pezzo di software.
    • Non utilizzare sequelize,… questo è tutto quello che posso dire
    • Non sono d’accordo. Sequelize docs è scarsa. Impossibile trovare un esempio decente di aggiornamento di relazioni (upsert). Obiezione ha una documentazione adeguata, simile a Reagire-router v4. Mi sono spostato di Sequelize per ObjectionJs e io sono felice con lui!
    • Anch’io mi sento come Sequelize documentazione è andato in discesa. Essi non sanno se si desidera utilizzare Sync() o manuale migrazioni, e la documentazione sembra waffle tra i due. Mi è stato portato giù il Sync() percorso da una espressa progetto di esempio, solo per scoprire che Sync() è principalmente un “strumento di sviluppo” e non deve essere utilizzato per la produzione. Se questo è il caso, quindi rimuoverlo dal docs e tutti i campioni, per favore. Questo è solo un esempio di sequelize non avere la sua roba insieme. Immaginare un intero ORM e documenti pieno di questo tipo di discrepanza.

  3. 19

    Prima di tutto, si prega di notare che non ho usato uno di loro (ma hai usato Node.js).

    Entrambe le librerie sono documentato abbastanza bene e hanno un
    stabile API. Tuttavia, persistence.js sembra essere in più progetti. Non so se tutti li uso ancora, però.

    Lo sviluppatore di sequelize a volte i blog su di esso a blog.depold.com. Quando si desidera utilizzare le chiavi primarie come chiavi esterne, avrete bisogno di patch descritta in questo post del blog. Se vuoi una mano per persistence.js c’è un gruppo di google dedicato ad esso.

    Dagli esempi deduco che sequelize è un po ‘ di più, JavaScript (più zucchero) di persistance.js ma ha il supporto per un numero di archivi di dati (solo MySQL, mentre persistance.js può anche usare il browser memorizza).

    Penso che sequelize potrebbe essere la strada da percorrere per voi, come avete solo bisogno di supporto MySQL. Tuttavia, se avete bisogno di alcune utili funzionalità (ad esempio la ricerca) o si desidera utilizzare un diverso database più tardi si avrà bisogno di utilizzare persistence.js.

    • sembra che persistencejs.org si punta ora ad alcuni indesiderato sito, solo GitHub è lavoro
  4. 10

    Una delle principali differenze tra Sequelize e Persistence.js è che il primo supporta un STRING tipo di dati, cioè VARCHAR(255). Mi sentivo davvero a disagio, il tutto TEXT.

    • Attualmente Persistence.js supporta VARCHAR troppo.
    • Nel database come PostgreSQL, il TESTO e il tipo di dati VARCHAR sono esattamente la stessa, l’unica differenza è che se si mette un limite di byte (VARCHAR(255)), allora si hanno un overhead per la verifica del limite. Non c’è assolutamente nessun problema nell’uso del TESTO per tutto in PostgreSQL.
    • Utilizzando il TESTO in PostgreSQL è in realtà la pratica migliore, anche se non è portatile.

Lascia un commento