PostgreSQL로 Adonis v5 설정

In this multi-part tutorial, we'll create and deploy a multi-server architecture web application.

Part 1:
Part 2: Setting up Adonis v5 with PostgreSQL
Part 3:
Part 4:
Part 5:



사용된 프레임워크 및 도구


  • 프런트 엔드: NuxtJSTailwindCSS/UI
  • 백엔드: AdonisJS
  • 데이터베이스: PostgreSQL
  • 서버 프로비저닝 및 배포: Cleavr

  • 2부 - PostgreSQL로 Adonis v5 설정



    이제 AdonisJS 버전 5를 미리 볼 수 있으며 Typescript로 완전히 다시 작성되어 대대적인 점검이 이루어집니다. 이 튜토리얼에서는 버전 5를 사용할 것이며 new documentation here 을 확인할 수 있습니다.

    로컬 머신에 AdonisJS v5 설치





    먼저 다음 명령을 실행하여 터미널을 통해 Adonis 프로젝트를 설치합니다.

    yarn create adonis-ts-app movieapi
    

    프로젝트 이름을 다른 이름으로 지정하려면 교체movieapi하십시오.

    질문이 표시되면 API만 생성하므로 API Server 옵션을 선택합니다.

    설치가 완료되면 다음 명령을 실행하라는 메시지가 표시됩니다.

    cd movieapi
    node ace serve --watch
    

    이것은 movieapi 디렉토리를 열고 시작 프로젝트를 제공합니다.

    앱은 로컬 호스트에서 제공되며 터미널에서 <address>:<port number>를 복사하여 웹 브라우저에 붙여넣습니다.

    브라우저에 다음이 표시되면 시작이 잘 된 것입니다!

    {"hello":"world"}
    

    AdonisJS v5용 PostgreSQL 드라이버 설치





    이제 PostgreSQL용 데이터베이스 드라이버를 설치하는 작업을 할 것입니다. 다른 데이터베이스 유형을 사용하도록 선택할 수 있습니다. 그렇다면 instructions for the database type you want to use 을 따르십시오.

    선택한 데이터베이스 유형에 관계없이 먼저 lucid 를 설치해야 합니다.

    cd movieapi
    yarn add @adonisjs/lucid@alpha
    

    다음을 실행합니다.

    node ace invoke @adonisjs/lucid
    

    그런 다음 설치할 데이터베이스 드라이버를 묻는 메시지가 표시됩니다. PostgreSQL을 선택하겠습니다.

    마지막으로 Postgres 드라이버 구성을 마치겠습니다.

    npm i pg
    

    Adonis와 Postgres 간의 데이터베이스 연결 확인





    먼저 컴퓨터에서 실행 중인 PostgreSQL 인스턴스가 있는지 확인합니다.

    DBngin은 로컬 데이터베이스 서버를 관리하는 빠르고 쉬운 방법을 제공합니다. 이를 사용하여 내 시스템에서 PostgreSQL 서버를 실행한 다음 TablePlus를 통해 서버에 연결하고 movies 라는 새 데이터베이스를 추가합니다.

    이제 IntelliJ에서 movieapi 프로젝트를 열고 database.ts 파일로 이동하여 데이터베이스 연결을 구성합니다.

    pg: {
          client: 'pg',
          connection: {
            host: Env.get('DB_HOST', '127.0.0.1') as string,
            port: Number(Env.get('DB_PORT', 5432)),
            user: Env.get('DB_USER', 'postgres') as string,
            password: Env.get('DB_PASSWORD', '') as string,
            database: Env.get('DB_NAME', 'movies') as string,
          },
          healthCheck: true,
        },
    

    참고 - postgres는 일반적으로 새 PostgreSQL 설치의 기본 사용자 이름입니다.

    또한 Adonis는 쿼리가 실행될 때만 데이터베이스 연결을 시도하므로 healthChecktrue로 설정되어 있는지 확인해야 합니다. 또한 상태 확인 기능을 사용하면 데이터베이스 연결을 빠르게 테스트할 수 있습니다.

    위의 구성에서 Adonis가 먼저 .env 파일에 변수가 있는지 확인하는 것을 볼 수 있습니다. 따라서 .env 파일의 기본값도 변경해야 합니다.

    DB_USER=postgres
    DB_PASSWORD=
    DB_NAME=movies
    

    이제 routes.ts를 열고 상태 확인을 가져온 다음 상태 확인 경로를 추가합니다.

    import HealthCheck from '@ioc:Adonis/Core/HealthCheck'
    
    Route.get('health', async ({ response }) => {
      const report = await HealthCheck.getReport()
    
      return report.healthy
        ? response.ok(report)
        : response.badRequest(report)
    })
    

    이제 연결을 확인할 수 있습니다. 프로세스가 중지된 경우 다시 실행해야 할 수도 있습니다node ace serve --watch.

    또한 이 단계에서 오류가 발생하여 계속하려면 설치proxy-addr해야 했습니다. 이 오류도 발생하면 다음 명령을 실행한 다음 프로젝트를 다시 제공하세요.

    npm install proxy-addr
    

    브라우저를 열고 URL에 /health를 추가하여 상태 확인 결과를 확인합니다. 데이터베이스와 성공적으로 연결되면 다음 메시지가 표시됩니다.

    {"healthy":true,"report":{"env":{"displayName":"Node Env Check","health":{"healthy":true}},"appKey":{"displayName":"App Key Check","health":{"healthy":true}},"lucid":{"displayName":"Database","health":{"healthy":true,"message":"All connections are healthy"},"meta":[{"connection":"pg","message":"Connection is healthy","error":null}]}}}
    

    이제 Adonis 및 PostgreSQL 연결이 설정되고 작동 중이므로 .


    따라해? GitHubhttps://github.com/armgitaar/moviesapi에서 2부 진행 상황을 확인하세요.

    좋은 웹페이지 즐겨찾기