Saya menulis ulang proyek untuk menggunakan Node.js. Saya ingin tetap menggunakan MySQL sebagai DB (walaupun saya tidak keberatan menulis ulang skema). Saya mencari ORM yang mudah digunakan dan berkinerja tinggi, yang mendukung caching, banyak-ke-satu dan banyak-ke-banyak hubungan. Dari ORM MySQL yang bisa saya temukan, kegigihan dan sekuel tampaknya yang paling matang. Apakah Anda memiliki pengalaman dengan keduanya? Apa pro dan kontra yang relevan yang harus saya perhatikan dalam keputusan saya?
326
Jawaban:
Bolehkah saya menyarankan Node ORM?
https://github.com/dresende/node-orm2
Ada dokumentasi pada Readme, mendukung MySQL, PostgreSQL dan SQLite.
MongoDB tersedia sejak versi 2.1.x (dirilis pada Juli 2013)
UPDATE: Paket ini tidak lagi dipertahankan, sesuai README proyek. Alih-alih merekomendasikan rak buku dan sekuel
sumber
Saya akan memilih Sequelize karena itu dokumentasi yang sangat baik. Itu hanya pendapat yang jujur (saya tidak pernah menggunakan MySQL dengan Node sebanyak itu).
sumber
Pertama, harap perhatikan bahwa saya belum pernah menggunakan keduanya (tetapi telah menggunakan Node.js).
Kedua perpustakaan didokumentasikan dengan cukup baik dan memiliki API yang stabil. Namun, persistence.js tampaknya digunakan dalam lebih banyak proyek . Saya tidak tahu apakah mereka semua masih menggunakannya.
Pengembang sekuel kadang-kadang blog tentang hal itu di blog.depold.com . Saat Anda ingin menggunakan kunci utama sebagai kunci asing, Anda memerlukan tambalan yang dijelaskan dalam posting blog ini . Jika Anda ingin bantuan untuk persistence.js ada grup google yang dikhususkan untuk itu.
Dari contoh yang saya kumpulkan bahwa sekuel lebih seperti JavaScript (lebih banyak gula) daripada persistance.js tetapi memiliki dukungan untuk lebih sedikit datastore (hanya MySQL, sementara persistance.js bahkan dapat menggunakan toko di dalam browser).
Saya pikir sekuel yang mungkin menjadi cara untuk Anda, karena Anda hanya perlu dukungan MySQL. Namun, jika Anda memerlukan beberapa fitur yang mudah digunakan (misalnya pencarian) atau ingin menggunakan database yang berbeda di lain waktu, Anda harus menggunakan persistence.js.
sumber
Satu perbedaan utama antara Sequelize dan Persistence.js adalah bahwa yang pertama mendukung
STRING
tipe data, yaituVARCHAR(255)
. Saya merasa sangat tidak nyaman membuat semuanyaTEXT
.sumber