Estou reescrevendo um projeto para usar o Node.js. Eu gostaria de continuar usando o MySQL como banco de dados (mesmo que não me importe em reescrever o esquema). Estou procurando um ORM de desempenho razoável, simples de usar, que ofereça suporte a cache, relações muitos-para-um e muitos-para-muitos. Nos ORMs do MySQL que pude encontrar, persistencejs e sequelize parecem os mais maduros. Você tem experiência com isso? Quais são os prós e contras relevantes dos quais devo estar ciente na minha decisão?
326
Respostas:
Posso sugerir o nó ORM?
https://github.com/dresende/node-orm2
Há documentação sobre o Leiame, suporta MySQL, PostgreSQL e SQLite.
O MongoDB está disponível desde a versão 2.1.x (lançada em julho de 2013)
ATUALIZAÇÃO: Este pacote não é mais mantido, de acordo com o LEIA-ME do projeto. Em vez disso, recomenda estante e sequela
fonte
Eu escolheria Sequelize por causa de sua excelente documentação. É apenas uma opinião honesta (nunca usei muito o MySQL com o Node).
fonte
Primeiro, observe que eu não usei nenhum deles (mas usei o Node.js.).
Ambas as bibliotecas estão bem documentadas e possuem uma API estável. No entanto, persistence.js parece ser usado em mais projetos . Eu não sei se todos eles ainda o usam.
Às vezes, o desenvolvedor do sequelize blogs sobre o assunto no blog.depold.com . Quando você quiser usar chaves primárias como chaves estrangeiras, precisará do patch descrito nesta postagem do blog . Se você quiser ajuda para o persistence.js, existe um grupo do Google dedicado a ele.
A partir dos exemplos, concluo que sequelizar é um pouco mais parecido com JavaScript (mais açúcar) do que persistance.js, mas tem suporte para menos datastores (apenas MySQL, enquanto persistance.js pode até usar armazenamentos no navegador).
Eu acho que sequelar pode ser o caminho a seguir, pois você só precisa do suporte ao MySQL. No entanto, se você precisar de alguns recursos convenientes (por exemplo, pesquisa) ou quiser usar um banco de dados diferente posteriormente, precisará persistence.js.
fonte
Uma grande diferença entre Sequelize e Persistence.js é que o primeiro suporta um
STRING
tipo de dados, ou sejaVARCHAR(255)
. Eu me senti muito desconfortável fazendo tudoTEXT
.fonte