GraphQL용 MongoDB 설치

GraphQL로 MongoDB를 설정하는 방법에 대한 동료의 짧은 자습서입니다.

Homebrew로 MongoDB 설치



먼저 Homebrew 을 설치해야 합니다. 이를 수행하려면 Visual Code Studio로 이동하여 Brew.sh에서 다음 줄을 실행합니다.

 /usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"

이제 Homebrew가 설치되어 있어야 합니다. 이미 설치한 경우 진행하기 전에 추출 업데이트를 수행한 다음 MongoDB를 설치할 수 있습니다.

$ brew update
$ brew install mongo

지금 해야 할 일은 루트 디렉토리로 이동하여 데이터베이스용 디렉토리를 만들고 권한을 설정한 다음 Mongo를 별표 표시할 수 있습니다.

$ sudo mkdir -p /data/db
$ sudo chmod 777 /data/db
$ mongod

짜잔! 우리는 그것을 설치하고 실행했습니다.

몽구스



Mongoose은 애플리케이션 데이터를 모델링하기 위한 간단한 스키마 기반 솔루션을 제공합니다.
여기에는 다음이 포함됩니다.
  • 내장형 주물,
  • 검증,
  • 쿼리 빌딩,
  • 비즈니스 로직 후크

  • 그럼 몽구스를 설치해보자. 올바른 디렉토리에 있는지 확인하고 $npm install를 사용하십시오.

    $ npm install --save mongoose
    

    연결 몽고



    새 폴더를 만들고 resolvers.jsschema.js 파일을 거기로 이동합니다. index.js 파일을 업데이트하여 여기에서 모든 항목을 올바르게 가져오도록 하십시오. 완료되면 Mongo를 데이터베이스에 연결하는 데 사용할 새로운 폴더에 새 파일을 만들 수 있습니다. 이름을 connect.js 로 지정하겠습니다.

    import mongoose from 'mongoose';
    
    mongoose.Promise = global.Promise;
    mongoose.connect =('mongodb://localhost/users', {
        useMongoClient: true
    });
    

    완료되면 원래 스키마와 동일한 요소를 사용하여 Mongo용 스키마 생성을 시작할 수 있습니다.

    const usersSchema = new mongoose.Schema({
        name: 
            type: String
        }
    })
    

    다음 중요한 단계는 해당 모델이 내부에 있는 변수에 대한 값을 생성하고 스키마를 전달하고 내보내는 것입니다.

    const Users = mongoose.model('users', usersSchema)
    export {Users};
    

    이제 몇 가지 GraphQL 리졸버를 생성해 보겠습니다. 이제 resolvers.js로 이동하여 Mongoose 및 사용자를 리졸버로 가져오기 시작합니다.

    import mongoose from 'mongoose';
    import { Users } from './connect';
    
    export const resolvers ={
        Query: {
            getUser: ({id}) => {
                return new User (id, userDatabase[id]);
            },
        },
        Mutation: {
            createUser: (root, { input}) => {
                const newUser = new Users({
                    name: input.name,
                });
    
                newUser.id = newUser._id;
    
                return new Promise((resolve, object)) =>
                    newUser.save((err) => {
                        if (err) reject (err)
                        else resolve(newUser)
                    })
                })    
            },
        },
    };
    

    좋은 웹페이지 즐겨찾기