Node.js 및 MySQL에 어떤 ORM을 사용해야합니까? [닫은]


326

Node.js를 사용하기 위해 프로젝트를 다시 작성 중입니다. 스키마를 다시 쓰지 않아도 MySQL을 DB로 계속 사용하고 싶습니다. 캐싱, 일대 다 및 다 대다 관계를 지원하는 사용하기 쉽고 합리적인 성능의 ORM을 찾고 있습니다. 내가 찾을 수있는 MySQL ORM에서 persistencejssequelize 가 가장 성숙한 것처럼 보입니다. 어느 쪽이든 경험이 있습니까? 내 결정에서 알아야 할 관련 장단점은 무엇입니까?


그러나 그것은 매우 흥미로운 주제입니다. 귀하의 사이트에서 데이터를 변경하기 위해 타사 개발자에게 액세스하고 싶습니까? 요청 매개 변수 (메타 언어)를 백엔드로 보내는 중간 js 라이브러리를 작성하는 것이 더 좋을 수 있습니까?
sergzach

2
@sergzach 정교하게 관리 하시겠습니까? "최대 절전 캐싱"용 Google.
ponzao

흠 ... 일부 사이트는 사용자 응용 프로그램을 허용합니다. 아니면 당신을 이해하지 못했습니다, 실례합니다.
sergzach

2
@sergzach : 캐싱은 실제로 여러 ORM 솔루션의 상당히 중요한 기능입니다. 예를 들어 카이엔을보십시오.
네이트 CK

답변:


101

Node ORM을 제안해도 될까요?

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

Readme에 대한 문서가 있으며 MySQL, PostgreSQL 및 SQLite를 지원합니다.

MongoDB는 버전 2.1.x (2013 년 7 월 출시) 부터 사용 가능합니다.

업데이트 :이 패키지는 프로젝트의 README에 따라 더 이상 유지 관리되지 않습니다. 대신 책장후유증을 권장합니다


27
문서를 기반으로 Sequelize 가이 프로젝트보다 앞서있는 것처럼 보입니다.
Tony O'Hagan

mysql ORM을 찾는 사람들에게는 또 다른 훌륭한 옵션입니다. 구문은 더 복잡하지만 훌륭합니다.
dresende

2
프로젝트가 URL을 변경했습니다 : github.com/dresende/node-orm2
Capy

이 오류를 배포하려고하면 "오류 : 'hat'모듈을 찾을 수 없습니다"라는 오류가 발생합니다. .. npm 설치 또는 재설치가 도움이되지 않는 것 같습니다. 어떤 제안? 감사합니다
Gene Bo

1
Node-orm2는 더 이상 적극적으로 유지 보수되지 않습니다. 그것은 sequelize 및 bookshelf.js에 연결됩니다.
seebiscuit

150

나는 훌륭한 문서 때문에 Sequelize를 선택할 것 입니다. 정직한 의견 일뿐입니다 (MySQL을 Node와 함께 사용한 적이 없었습니다).


10
또한 node-orm2 또는 persistence.js는 마이그레이션 메커니즘을 제공하지 않습니다. persistence.js는 postgres를 지원하지 않습니다. sequelize는이 두 가지를 모두 수행합니다.
airtonix

4
나는 node-orm2를 사용했고 Sequelize의 더 나은 문서 덕분에 더 쉽게 얻을 수있었습니다.
Michael J. Calkins

2
@Gelidus이 정보를 어디서 얻었습니까?
William Lepinski

14
슬프게도 Sequelize 문서는 최근 끔찍해졌습니다. 최근에 Sequelize를 사용하기 시작했으며 문서에 매우 만족했습니다. 이제 자동 생성 된 끊어진 링크, 오래된 정보 및 불완전한 예입니다. 그래도 계속 고수하겠습니다. 배우기가 어렵지 않습니다.
Brad

2
방금 내 의견을 삭제하고 불행히도 @Brad에 100 % 동의합니다. (
Andrey Popov

19

먼저 두 가지 중 하나를 사용하지 않았지만 Node.js를 사용했습니다.

두 라이브러리는 모두 잘 문서화되어 있으며 안정적인 API가 있습니다. 그러나 persistence.js는 더 많은 프로젝트에서 사용되는 것 같습니다 . 그래도 모든 사람들이 여전히 그것을 사용하는지 모르겠습니다.

sequelize 개발자는 때때로 blog.depold.com 에서 블로그를 게시 합니다. 기본 키를 외래 키로 사용하려면 이 블로그 게시물에 설명 된 패치가 필요합니다 . persistence.js에 대한 도움말을 원하시면 Google 그룹이 있습니다.

필자가 수집 한 예제에서 sequelize는 persistance.js보다 JavaScript와 비슷하지만 설탕이 많지만 더 적은 수의 데이터 저장소를 지원합니다 (persistance.js는 브라우저 내 저장소를 사용할 수도 있음).

MySQL 지원 만 필요하기 때문에 sequelize가 당신을위한 길이라고 생각합니다. 그러나 편리한 기능 (예 : 검색)이 필요하거나 나중에 다른 데이터베이스를 사용하려면 persistence.js를 사용해야합니다.


1
것 같아 persistencejs.org이 지금 원하지 않는 사이트를 가리키는 만 GitHub의이 작동
sansknwoledge

10

Sequelize와 Persistence.js의 한 가지 주요 차이점은 전자가 STRING데이터 유형을 지원한다는 것 VARCHAR(255)입니다. 나는 모든 것을 만드는 것이 정말로 불편하다고 느꼈다 TEXT.


7
현재 Persistence.js는 VARCHAR도 지원합니다.
alehro

8
PostgreSQL과 같은 데이터베이스에서 TEXT 및 VARCHAR은 정확히 동일하지만 유일한 차이점은 바이트 제한 (VARCHAR (255))을 설정하면 제한을 확인하기위한 오버 헤드가 있다는 것입니다. PostgreSQL의 모든 것에 TEXT를 사용하는 데 전혀 문제가 없습니다.
다시 작성

3
이식성이 좋지 않더라도 PostgreSQL에서 TEXT를 사용하는 것이 실제로 더 좋습니다.
cowbert
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.