Nodejs 및 Express로 GraphQL 서버를 구축하는 방법

2772 단어 beginnersnodegraphql
API로 작업하고 쿼리를 작성할 수 있는 능력은 오늘날 모든 개발자에게 매우 중요합니다. 더 많은 개발자와 팀이 API로 작업할 때 GraphQL을 사용하기로 선택합니다.

이 기사에서는 Nodejs 및 Express로 GraphQL 서버를 구축하고 작동을 확인하는 쿼리를 작성하는 방법을 배웁니다. 이 프로젝트의 코드는 Github에 있습니다.

GraphQL의 장점 중 일부는 다음과 같습니다.
  • 서버 자체가 아니라 클라이언트가 응답을 결정합니다. 이것은 클라이언트가 필요로 하는 것을 정확하게 반환합니다.
  • 특정 요청을 빠르게 보낼 수 있도록 하여 요청을 줄일 수 있습니다.
  • 각 수준은 각 유형이 사용 가능한 여러 필드를 설명하는 특정 유형과 관련됩니다. 쿼리를 실행하기 전에 설명적인 오류 메시지를 허용합니다.

  • 시작해볼까요?

    빈 폴더를 만들어 시작하겠습니다.

    mkdir graphqlserver
    


    그 다음에

    cd graphqlserver
    


    디렉토리를 graphqlserver로 변경하고 다음 npm 코드로 폴더를 시작합니다.

    npm init
    


    새 파일 app.js를 생성하고 마지막으로 express, graphql 및 express-graphql 패키지를 설치합니다.

    touch app.js
    
    npm i express graphql express-graphql
    


    이제 프로젝트가 설정되었으며 app.js 파일에 코드를 추가할 시간입니다.

    require('dotenv').config();
    const express = require('express');
    const { graphqlHTTP } = require('express-graphql');
    const { buildSchema } = require('graphql');
    
    // GraphQL schema
    const schema = buildSchema(`
      type Query {
          message: String
      }`);
    
    //Root resolver
    const root = {
      message: () => 'Welcome to GraphQL server with Nodejs and Express',
    };
    
    // Create an express server and a GraphQL endpoint
    
    const app = express();
    
    const Port = process.env.Port || 8080;
    
    app.use(
      '/graphql',
      graphqlHTTP({
        schema: schema,
        rootValue: root,
        graphiql: true,
      })
    );
    
    app.listen(Port, (req, res) => {
      console.log(`Graphql Express Server is up on localhost:${Port}/graphql`);
    });
    


    처음에는 필요한 모든 종속성이 graphql에서 가져온 express, express-graphql 및 buildSchema 함수인지 확인하는 것입니다. 다음은 app 변수에 저장된 익스프레스 인스턴스로 익스프레스 서버를 생성하는 것입니다.

    API 시스템을 설명하는 GraphQL 스키마를 생성합니다. API 시스템에는 데이터와 클라이언트가 해당 데이터에 액세스할 수 있는 방법이 포함됩니다. API가 호출될 때마다 스키마에 대해 검증됩니다. 작업이 유효한 것으로 입증된 경우에만 실행되며 그렇지 않으면 오류가 반환됩니다.

    마지막으로 app.listen은 포트 8080의 .env 파일 else에 포함된 대로 포트 8000에서 서버 프로세스를 시작하도록 호출됩니다.

    노드 서버가 준비되었으며 아래 코드를 사용하여 시작할 수 있습니다.
    node start
    또는
    node app.js
    앱을 계속 다시 지정할 필요가 없다면 nodemon이 파일의 변경 사항을 감시할 것입니다. 이(가) 글로벌 종속성으로 설치되었는지 확인하십시오.
    nodemon
    Graphql Express 서버는 localhost:8000/graphql에 있습니다.

    좋은 웹페이지 즐겨찾기