ORM과 같은 sequelize의 도움말 없이 PostgreSQL 영구화 노드 API를 사용합니다.

우리가 용어인'견지'를 사용할 때, 우리의 뜻은 무엇입니까?우리의 일상 영어에서 지속성은 "원인을 제거한 후의 영향의 지속성"이다. 데이터베이스에 데이터를 저장하는 상하문에서 지속성은 창설 과정이 끝난 후에 생존하는 능력을 가리킨다.
MongoDB를 사용하여 데이터를 영구화하는 다른 NodeJS 강좌와 달리 PostgreSQL을 사용합니다.또한 NodeJs와 PostgreSQL을 사용하여 Restful API를 개발하는 데 대한 기초 지식을 확보하기 위해 ORM(대상 관계 매핑) 사용을 피하고 자세한 내용을 읽으십시오.👉 here .
선행 조건:
  • Express 및 Es6로 기본 NodeJs API 작성
    아래에서 찾을 수 있어요.👇


  • SQL 쿼리 문법에 대한 기본 지식을 습득합니다. 왜냐하면 이 강좌는 이런 것들을 소개하지 않기 때문입니다
  • NodeJs 및 Express에 대한 기본 지식
  • NodeJs 설치, 다운로드 link
  • PostgreSQL 설치, 다운로드 link
  • 설치 후 응용 프로그램pgAdmin을 검색하고 시작하여 PostgreSQL과 함께 설치합니다.pgAdmin은 PostgreSQL의 GUI 관리 및 개발 플랫폼입니다(이것은 우리의 데이터베이스 관리를 더욱 간단하고 우호적으로 하는 데 도움이 된다는 것을 의미합니다)
  • 시작:
    이 강좌에서 클래스 등록표에 API를 만들고 데이터베이스를 만들고 설정합니다.
    다음 지침에 따라 pgAdmin을 사용하여 데이터베이스를 만듭니다.1. Double click on the PostgreSQL server .2. Right-lick on Login Roles, assuming you have none and select new login role .3. Type your preferred Role name, mine is school_reg .4. Move to the next tab *Definition* and set your password for this role, mine is school_reg .5. Click on *OK* to save .6. Right-click on Databases and select New Database .7. Type Database name in the space for Name, mine is school_register .8. Select owner of Database, here we would select the login role or user we created, remember mine is school_reg .9. Click *OK* to save .
    위의 그림에서는 다음과 같은 프로세스를 보여 줍니다.

    데이터베이스를 만든 후에 우리는 테이블과 테이블 관계를 만들어야 한다. 이상한 말로 말하자면 모델을 만들어야 한다.현재, 우리는 단지 하나의 표만 가지고 있다. 우리의 표student는 학생에 대한 기본 정보를 포함할 것이다. 응용 프로그램이 증가함에 따라, 만약 우리가 확장을 선택한다면, 우리는 더 많은 표를 만들어야 한다.
    항목 설정:
  • 프로젝트 폴더를 만드는 것부터 시작하겠습니다. 저는 그것을 제 AwesomeNodepostgres 라고 명명합니다. 그렇습니다. 이것은 매우 길다는 것을 알고 있습니다. 당신은 비교적 짧은 이름을 자유롭게 선택할 수 있습니다.
  • 명령줄에서 프로젝트 폴더를 찾은 후 명령줄에서 실행npm init하여 프로젝트를 노드 프로젝트로 초기화합니다.만약 당신이 아직 이렇게 하지 않았다면, 이 점을 어떻게 하는지 이해하기 위해 이전 강좌를 참고하십시오.
  • 상술한 절차를 마친 후, 당신이 내가 가장 좋아하는 코드 편집기vscode.를 사용한다고 가정하면, 당신의 프로젝트 디렉터리는 다음과 같이 해야 합니다.

    이제 응용 프로그램을 작성하는 데 필요한 패키지를 설치하겠습니다.본 강좌에서 우리는 다음과 같은 노드 패키지가 필요하다.
  • Express, 이것은 우리가 지난 문장
  • 에서 이미 만났던 것이다
  • 우리의postgres 데이터베이스와 통신하기 위해서는 node-postgres라는 가방이 필요합니다.
  • 서버가 항상 변경 사항을 탐지하고 프로그램을 다시 시작할 수 있도록 다른 패키지nodemon를 설치합니다.
  • 이전 두 소프트웨어 패키지를 설치하려면 명령줄의 프로젝트 폴더에 있는지 확인하십시오.다음 명령을 실행합니다.
                npm install express pg --save
                npm install nodemon --save-dev
    
    --save-dev 개발 과정에서 nodemon을 개발 의존항으로 저장하고 사용하기 때문에 생산 과정에서 nodemon을 사용하지 않는다는 뜻이다.
    이제 데이터베이스 연결을 만들기 위해 폴더 services 를 만들고 이 폴더 db.js 라는 파일을 만들 것입니다.services/db.js 내에 다음 코드를 입력합니다.
    const pg = require('pg');
    
    const config = {
      user: 'school_reg', //this is the db user credential
      database: 'school_register',
      password: 'school_reg',
      port: 5432,
      max: 10, // max number of clients in the pool
      idleTimeoutMillis: 30000,
    };
    
    const pool = new pg.Pool(config);
    
    pool.on('connect', () => {
      console.log('connected to the Database');
    });
    
    현재 우리의 표를 만들려면 이전 코드 블록에 다음 코드를 입력하십시오.
    const createTables = () => {
      const schoolTable = `CREATE TABLE IF NOT EXISTS
          students(
            id SERIAL PRIMARY KEY,
            student_name VARCHAR(128) NOT NULL,
            student_age INT NOT NULL,
            student_class VARCHAR(128) NOT NULL,
            parent_contact VARCHAR(128) NOT NULL,
            admission_date VARCHAR(128) NOT NULL
          )`;
      pool.query(schoolTable)
        .then((res) => {
          console.log(res);
          pool.end();
        })
        .catch((err) => {
          console.log(err);
          pool.end();
        });
    };
    
    이 스크립트로 우리의 테이블을 만들기 위해서, 명령줄에서 이 코드를 실행하는 방법을 찾아야 합니다.우리는 make-runnable라는 다른 패키지를 사용하여 이 패키지를 설치할 수 있다.npm install make-runnable --save, 설치 후 페이지 밑에 있는 코드 라이브러리로 돌아가 다음 내용을 추가합니다.
    pool.on('remove', () => {
      console.log('client removed');
      process.exit(0);
    });
    
    
    //export pool and createTables to be accessible  from an where within the application
    module.exports = {
      createTables,
      pool,
    };
    
    require('make-runnable');
    
    현재, 프로그램을 만들기 위해서, 명령줄에서 실행될 때, 테이블을 만들 스크립트를 package.json 파일에 작성합니다.package.json 파일에서 대상 스크립트를 찾아 다음 코드로 대상 내부의 내용을 대체합니다.
    "create": "node ./services/db createTables"
    
    프로젝트 디렉터리에서 명령줄로 이동하여 실행합니다.
    npm run create
    
    다음 그림은 이 동작을 실행할 때 발생한 상황을 보여 주고 새로 만든 테이블이 pgAdmin 응용 프로그램에 있는 위치를 자세히 보여 줍니다.


    데이터베이스와 테이블의 생성이 완료됨에 따라 데이터베이스에 데이터를 저장하고 저장된 데이터를 검색할 때가 되었다.
    그 전에 프로젝트 폴더에 index.js 라는 파일을 만듭니다. 이 파일은 서버와 express 코드를 포함합니다.우리의 index.js 에 다음 코드를 입력하십시오.
       const express = require('express');
       const app = express();
    
    
       const port = process.env.PORT || 3000;
    
    
       // Add route code Here
       app.get('/', (req, res) => {
          res.send('Welcome to Our SCHOOL API');
       });
    
    
       app.listen(port, () => {
          console.log(`We are live at 127.0.0.1:${port}`);
       });
    
    응용 프로그램을 실행하려면 index.js 파일에서 찾은 scripts 대상에 두 개의 추가 코드를 추가하고 만들기 전에 이 두 개의 코드를 삭제하십시오.
        "dev": "nodemon index.js",
        "start": "node index.js",
    

    현재 프로젝트를 실행하려면 nodemon 옵션을 사용할 것입니다. 따라서 우리가 어떤 변경을 하든지 간에 우리는 주의할 수 있습니다.변경해서 저장할 때, 노드몬이 서버를 다시 시작하는 방법을 관찰해 보십시오.

    저희 서버가 시작된 상황에서 서버에서 정탐하고 있는 링크 package.json 를 방문하십시오. 제 서버에서 지정한 것처럼.집배원 프로그램을 열고 링크를 사용하여 GET 요청을 보냅니다.

    이제 학생들의 창설과 모든 학생들이 얻을 수 있는 경로를 만듭니다.127.0.0.1:3000 파일의 첫 번째 루트 다음에 다음 코드를 추가합니다. 이 코드들은 처리되고 한 학생을 삽입하여 모든 학생을 얻습니다.데이터베이스에 삽입할 수 있도록 요청 주체에 제공할 값을 선택해야 합니다. 이를 위해 body-parser라는 노드 패키지를 사용합니다.
    npm install body-parser
    
    상기 패키지를 설치한 후, 우리의 노선을 계속하기 전에 다음 코드를 우리의 index.js에 추가합니다.다음 내용 추가index.js
    const bodyParser = require('body-parser');
    app.use(bodyParser.json());
    app.use(bodyparser.urlencoded({extended:true}));
    
    이제 우리의 노선을 계속합시다.
    app.get('/student', (req, res) => {
    pool.connect((err, client, done) => {
        const query = 'SELECT * FROM students';
        client.query(query, (error, result) => {
          done();
          if (error) {
            res.status(400).json({error})
          } 
          if(result.rows < '1') {
            res.status(404).send({
            status: 'Failed',
            message: 'No student information found',
            });
          } else {
            res.status(200).send({
            status: 'Successful',
            message: 'Students Information retrieved',
            students: result.rows,
            });
          }
        });
      });
    });
    
    
    app.post('/student', (req, res) => {
      const data = {
        name : req.body.studentName,
        age : req.body.studentAge,
        classroom : req.body.studentClass,
        parents : req.body.parentContact,
        admission : req.body.admissionDate,
      }
    
      pool.connect((err, client, done) => {
        const query = 'INSERT INTO students(student_name,student_age, student_class, parent_contact, admission_date) VALUES($1,$2,$3,$4,$5) RETURNING *';
        const values = [data.name, data.age, data.classroom, data.parents, data.admission];
    
        client.query(query, values, (error, result) => {
          done();
          if (error) {
            res.status(400).json({error});
          }
          res.status(202).send({
            status: 'SUccessful',
            result: result.rows[0],
          });
        });
      });
    });
    
    응용 프로그램을 실행하고postman의 링크를 방문하십시오. 이번에 요청한 GET와 POST 사이의 교체된 링크를 방문합니다const app = express();.아래의 캡처를 보세요. 우체부를 어떻게 테스트하는지 모르면 똑같은 일을 하세요.
  • 우선 postman에 제목 정보를 설정합니다.
  • 그러면 바디 값을 설정하고 다음 화면 캡처에 따라 작업을 수행합니다.
  • 그리고 "발송"을 누르세요. 안녕하세요. 결과가 나왔습니다.
  • get 요청을 실행하려면 요청 형식을 get으로 변경하고 "보내기"를 누르십시오.

    워라!!!이제 데이터베이스로 API를 가져오고 전송할 수 있습니다.
    주의: 우리의 루트, 서버, express 프로그램을 파일에 놓는 것은 좋지 않습니다. GitHub, fork,submit PR에서 이 프로젝트 저장소를 시작하여 제가 그것을 계속 처리할 때 어떻게 조작하는지 확인하거나 직접 처리하고 전송 요청을 제출할 수 있습니다.
    응용 프로그램에 루트를 추가합니다. 특정한 학생 정보를 얻으려면 루트를 작성하지만, 조회를 작성하고 배운 내용에 따라 응답해 주십시오.
    app.get('/student/:id', (req,res) => {
      const id = req.params.id;
      res.send(`Student ${id} profile`);
    });
    
    우리가 새로운 단점에 요청을 할 때, 우리는 얻을 수 있다.

    따라서 코드를 완성하고 데이터베이스에서 id를 인용하고 있는 학생을 선택하십시오.
    다음은 GitHub 재구매 계약입니다.주연을 잊지 마라.감사합니다.
    다음 강좌에서 우리는 루트에 대해 어떻게 신분 검증을 하는지를 연구할 것이기 때문에 적당한 신분 검증이 없으면 사용자가 루트에 접근할 수 없다.

    오구루 존슨 / AwesomeNodePostgres 동충하초


    이 프로젝트를 만드는 목적은 PostgreSQL 영구화 데이터를 사용하는 방법을 가르치는 동시에 NodeJ를 사용하여 API를 만드는 것입니다


    Node Express PPOTGRES
     

    dev.to의 노드 API 튜토리얼에 대한 코드 라이브러리


    데이터베이스에 레코드 저장


    데이터베이스에서 레코드 검색


    데이터베이스 기록 업데이트 등



    프로젝트







    AwesomeNodePostgres 동충하초


    이 프로젝트를 만드는 목적은 PostgreSQL 영구화 데이터를 사용하는 방법을 가르치는 동시에 NodeJ를 사용하여 API를 만드는 것입니다
    현재 모든 학생 보기, 학생 추가, 학생 세부 정보 편집, 학생 삭제 등을 처리하는 API인 교실 응용 프로그램을 만드는 데 주력할 것입니다. 이 프로젝트에 참여하고 자술한 파일에 어떻게 사용하는지에 대한 지침을 남기면 다른 기능을 마음대로 추가할 수 있습니다.md 파일
    View on GitHub

    좋은 웹페이지 즐겨찾기