Estoy reescribiendo un proyecto para usar Node.js. Me gustaría seguir usando MySQL como DB (aunque no me importa volver a escribir el esquema). Estoy buscando un ORM fácil de usar y de rendimiento razonable, que admita el almacenamiento en caché, las relaciones de muchos a uno y de muchos a muchos. De los ORM de MySQL que pude encontrar, la persistencia y la secuencia parecen las más maduras. ¿Tienes experiencia con alguno? ¿Cuáles son los pros y los contras relevantes que debo tener en cuenta en mi decisión?
326
Respuestas:
¿Puedo sugerir Nodo ORM?
https://github.com/dresende/node-orm2
Hay documentación sobre el archivo Léame, es compatible con MySQL, PostgreSQL y SQLite.
MongoDB está disponible desde la versión 2.1.x (lanzada en julio de 2013)
ACTUALIZACIÓN: Este paquete ya no se mantiene, según el archivo README del proyecto. En su lugar, recomienda estantería y secuela
fuente
Elegiría Sequelize por su excelente documentación. Es solo una opinión honesta (realmente nunca usé MySQL con Node tanto).
fuente
En primer lugar, tenga en cuenta que no he usado ninguno de ellos (pero he usado Node.js).
Ambas bibliotecas están bien documentadas y tienen una API estable. Sin embargo, persistence.js parece usarse en más proyectos . Sin embargo, no sé si todos lo siguen usando.
El desarrollador de sequelize a veces bloguea al respecto en blog.depold.com . Cuando desee utilizar claves principales como claves externas, necesitará el parche que se describe en esta publicación de blog . Si desea ayuda para persistence.js, hay un grupo de Google dedicado a ello.
De los ejemplos que deduzco, la secuencia es un poco más similar a JavaScript (más azúcar) que persistance.js, pero tiene soporte para menos almacenes de datos (solo MySQL, mientras que persistance.js incluso puede usar tiendas en el navegador).
Creo que la secuencia podría ser el camino a seguir para usted, ya que solo necesita soporte de MySQL. Sin embargo, si necesita algunas funciones convenientes (por ejemplo, búsqueda) o si desea utilizar una base de datos diferente más adelante, deberá utilizar persistence.js.
fuente
Una diferencia importante entre Sequelize y Persistence.js es que la primera admite un
STRING
tipo de datos, es decirVARCHAR(255)
. Me sentí realmente incómodo haciendo todoTEXT
.fuente