-
GraphQL + MongoDB 연동하기2018~2019/JavaScript 2018. 7. 8. 16:06
1. Graphql-yoga 설치
- yarn add grapql-yoga
2. MongoDB 설치 및 mLab
- yarn add mongoose
- mLab 가입 후 deployment 생성 후 URL 생성
3. 코드 작성
[ index.js ]
import { GraphQLServer } from "graphql-yoga";
import mongoose from "mongoose";
mongoose.Promise = global.Promise;
mongoose.connect(
'mongodb://<dbuser>:<dbpassword>@~~~~', // mLab URL 삽입 dbuser: 아이디, dbpassword: 비밀번호
{useNewUrlParser : true});
mongoose.connection.once('open', () => {
console.log('MongoDB Connected...');
});
const server = new GraphQLServer({
typeDefs: "graphql/schema.graphql",
resolvers
});
server.start(() => console.log("Graphql Server Running"));
[ Movie.js ]
import mongoose from "mongoose";
const Schema = mongoose.Schema;
const movieSchema = new Schema({
id: String,
title: String,
rating: Number,
});
export default mongoose.model('Movie', movieSchema);
[ schema.graphql ]
type Movie {
id: Int!
title: String!
rating: Float
}
type Query {
movie(title: String!): Movie
}
type Mutation {
addMovie(title:String!, rating: Float): Boolean!
}
[ resolver.js ]
import Movie from './Movie';
const resolvers = {
Query: {
movie: (_, { title }) => {
return Movie.findOne({title}); // 데이터베이스에서 특정 하나의 데이터 조회
},
},
Mutation: {
addMovie: async (_, { title, rating }) => {
let movie = new Movie({
title,
rating
});
return movie.save(); // 데이터베이스에 저장
}
}
};
export default resolvers;
4. 실행
- yarn start 후 localhost:4000 (Playground) 접속
- query 또는 mutation => mLab Collections에 데이터 생성 확인
'2018~2019 > JavaScript' 카테고리의 다른 글
ES2015+ (ES6) (0) 2018.09.21 Deploy a GraphQL server with Now (0) 2018.07.17 MongoDB 정리 (0) 2018.07.08 GraphQL 정리 (0) 2018.07.07