PostgreSQL 학습 및 사용 - Sequelize 및 PostgreSQL 시작하기

문제를 제거하기 위해 도구를 사용해보십시오

PostgreSQL 학습 및 사용 - Sequelize 및 PostgreSQL 시작하기

이 튜토리얼에서는 NodeJS ORM이라는 연속화 PostgreSQL 데이터베이스와의 인터페이스.

시퀄라이즈 소개

Sequelize는 SQL 기반 데이터베이스를 조작하는 일반적인 기능과 유틸리티를 제공하는 NodeJS 모듈입니다. 기술적으로 NodeJS용 ORM(Object Relational mapping) 모듈입니다. 다음 데이터베이스를 지원합니다.

  • MySQL
  • PostgreSQL
  • 마리아DB.
  • SQLite.
  • MSSQL

우리는 이미 MySQL, SQLite 및 MariaDB에 대한 자습서를 다루었습니다. 이 튜토리얼에서는 PostgreSQL을 배우고 사용할 것입니다.



PostgreSQL 정보

PostgreSQL은 가장 진보된 관계형 데이터베이스 시스템으로 간주됩니다. 15년 간의 연구 개발을 통해 다중 버전 동시성 제어, 안정성, 가용성 및 강력한 데이터 유형과 같은 놀라운 기능을 제공합니다.

프로덕션 시스템에서 개인적으로 사용하지 않았으므로 라이브 경험을 제공할 수 없습니다. 사용하신 분이 계시다면 댓글로 피드백 부탁드립니다.

이것을 사용하여 Sequelize ORM을 테스트합니다. 시작하려면 다음을 방문하십시오. PostgreSQL 공식 사이트 다운로드합니다. 모든 주요 운영 체제를 지원합니다.

Sequelize 및 PostgreSQL

설치가 완료되면 PostgreSQL 관리 화면을 엽니다. 다음과 같이 보일 것입니다.

Sequelize 및 PostgreSQL
엄청난! PostgreSQL이 실행 중입니다!

Sequelize 및 PostgreSQL 시작하기

Sequelize를 시작하겠습니다. 먼저 새 폴더를 만들고 터미널을 사용하여 해당 폴더로 전환합니다.

그런 다음 다음 명령을 실행하여 새로운 새로운 NodeJS 프로젝트를 생성합니다.

npm init --y

이렇게 하면 다음이 생성됩니다.

{ 'name': 'sequalize-postgres', 'version': '1.0.0', 'description': '', 'main': 'index.js', 'scripts': { 'test': 'echo 'Error: no test specified' && exit 1' }, 'keywords': [], 'author': '', 'license': 'ISC' }

그런 다음 다음 명령을 사용하여 Sequelize 및 PostgreSQL에 대한 노드 종속성을 설치합니다.

npm i --save sequelize pg pg-hstore

Sequelize 및 PostgreSQL을 사용하여 다음 작업을 수행합니다.

  • 데이터베이스에 연결
  • 모델 생성
  • CRUD 작업 수행
  • 모니터링 쿼리

데이터베이스에 연결

새 파일 만들기 앱.js 그리고 다음 코드를 추가합니다.

const Sequelize = require('sequelize'); const sequelize = new Sequelize('codeforgeek', 'postgres', 'shahid', { host: 'localhost', dialect: 'postgres', pool: { max: 9, min: 0, idle: 10000 } }); sequelize.authenticate().then(() => { console.log('Success!'); }).catch((err) => { console.log(err); });

다음 명령을 사용하여 코드를 실행합니다.

node app.js

PostgreSQL에서 데이터베이스를 생성하지 않았기 때문에 다음 오류를 반환합니다(더 많은 필드를 받게 됩니다).

{ name: 'SequelizeConnectionError', message: 'database 'codeforgeek' does not exist' }

데이터베이스를 생성하려면 PostgreSQL 관리자를 엽니다.

Sequelize 및 PostgreSQL

데이터베이스에 적절한 이름을 지정하고 사용자를 선택하십시오.

Sequelize 및 PostgreSQL

이제 동일한 코드를 실행하면 아래와 같은 메시지가 표시됩니다.

Sequelize 및 postgresql

Sequelize를 사용하여 PostgreSQL 내부에 테이블을 생성해 보겠습니다.

Sequelize를 사용하여 모델 만들기

이 코드를 인증() 성공 블록.

sequelize.authenticate().then(() => { console.log('Success!'); var Posts = sequelize.define('posts', { title: { type: Sequelize.STRING }, content: { type: Sequelize.STRING } }, { freezeTableName: true }); Posts.sync({force: true}).then(function () { return Posts.create({ title: 'Getting Started with PostgreSQL and Sequelize', content: 'Hello there' }); }); }).catch((err) => { console.log(err); });

코드를 실행하면 터미널에서 실행 중인 쿼리가 표시되어야 합니다. 아래에 표시된 것과 유사합니다.

Sequelize 및 PostgreSQL

CRUD 작업 수행

위에 표시된 코드를 사용하여 테이블에 이미 데이터를 생성했습니다. 독서를 합시다.

SQL 기반 데이터베이스에서 무언가를 읽으려면 SELECT 쿼리를 사용합니다. 이 같은.

size_t는 음수일 수 있습니다.
SELECT * FROM `posts` WHERE `id`=2019;

Sequelize는 데이터베이스 읽기를 수행하는 기능을 제공합니다. 기능은 모두 찾기() WHERE, JOINS 등과 같은 절을 다루기 위해 다양한 매개변수를 허용하고 약속 함수를 반환합니다.

에서 데이터를 읽으려면 게시물 표에서는 다음 코드를 사용합니다.

Posts.findAll({}).then((data) => { console.log(data); }).catch((err) => { console.log(err); });

추가하고 싶다면 어디 절이 있으면 다음 코드로 조정할 수 있습니다.

Posts.findAll({ where: { id: '100' } }).then((data) => { console.log(data); }).catch((err) => { console.log(err); });

모든 읽기 작업 조합을 찾을 수 있습니다. 여기 .

다음을 사용하여 모든 필드를 업데이트할 수 있습니다. 업데이트() 방법. 다음은 샘플 코드입니다.

Posts.update({ content: 'This is a tutorial to learn Sequelize and PostgreSQL' }, { where: { id: 1 } }).then(() => { console.log('Updated'); }).catch((e) => { console.log('Error'+e); });

다음을 사용하여 행을 삭제할 수 있습니다. 파괴하다() 기능.

Posts.destroy({where: { id: 1 }}).then(() => { console.log('Deleted'); }).catch((e) => { console.log('Error'+e); });

여기에는 네 가지 CRUD 작업이 모두 포함됩니다.

모니터링 쿼리

Sequelize는 데이터베이스를 처리하기 위해 백그라운드에서 SQL 쿼리를 실행합니다. 터미널에서 해당 쿼리도 볼 수 있습니다. 예를 들어 아래 스크린샷을 참조하세요.

Sequelize 및 PostgreSQL

각 메서드 호출에서 이러한 쿼리를 실시간으로 모니터링할 수 있으며 Sequelize는 이러한 쿼리를 실행합니다.

결론

다양한 데이터베이스와 인터페이스하기 위해 다양한 노드 모듈을 시도하고 테스트했습니다. 모듈이 너무 많기 때문에 트랙을 유지하고 이러한 모듈의 개발과 연락을 유지하는 것이 어렵습니다. 이러한 문제를 해결하기 위해 Sequelize와 같은 것이 등장하게 되어 기쁩니다. 하나의 모듈, 여러 데이터베이스가 필요했습니다!

Sequelize로 작업할 예정인지, 이미 사용한 경험이 있는지 알려주세요.

#PostgreSQL #Nodejs #시퀀싱 #데이터베이스 #WebDev

또한보십시오: