Express + GraphQL + MongoDB 시작하기 - 2

HOONEY·2021년 12월 30일
0

Express

목록 보기
2/5
post-thumbnail

설치한 라이브러리 import

  • 프로젝트 폴더 내에 src폴더 생성 후 index.js로 파일을 생성한다.(project/src/index.js)
const express = require('express');
const app = express();
const mongoose = require('mongoose');
  • express를 불러와 app이라는 변수에 담아 사용할 준비 완료

서버 설정

app.get('/', function (req, res) {
	res.send('hello world')
})
app.listen(5000, async () => {
	console.log(`server listening on port 5000`);
});
  • send() : 다양한 유형의 응답을 전송하는 메소드. 여기서는 'hello world'라는 문자열을 사용하였으므로 response Header 내에 Content-Type을 자동으로 'text/html'로 설정된다.

  • listen() : 서버에 접속하기 위해 필요한 메소드. (5000) 이라고 되어있는 것은 포트를 5000번으로 지정해주었다는 뜻이고, 다른 포트로 변경이 가능. listen 메소드는 지정된 호스트 및 포트에서 연결을 바인딩하고 수신한다.

  • 터미널에 npm run start 후 에러가 없다면 브라우저 주소창에 localhost:5000을 작성 하면 hello world를 볼 수 있다.

MongoDB 연결

mongoose.connect("MONGO_URI", {
	useNewUrlParser: true,
	useUnifiedTopology: true,
});	
  • "MONGO_URI"에는 각자 본인들만의 MONGO DB정보를 입력한다.
  • 나는 .env파일을 생성하여 포트 정보를 PORT, DB접속 정보를 MONGO_URI라는 변수에 정보를 넣어놔서 const { MONGO_URI, PORT } = process.env; 명령어에 담아 사용했다.
  • mongoose 5 버전부터는 업데이트가 되어 useNewUrlParser: true, useUnifiedTopology: true 옵션을 사용해주지 않으면 경고 메세지가 출력된다.(MONGO DB접속 URL이 바뀌면서 옵션을 해줘야한다고 함. 6부터는 필요없음)
  • useUnifiedTopology (6부터는 필요없음)

GraphQL 설정

  • 하단 명령어로 설치
npm i apollo-server-express
  • index.js 최상단에서 라이브러리와 필요한 파일 호출
import { ApolloServer } from "apollo-server-express";
import { schema } from "./graphql/schema";
  • 구동시키기(app.listen 하단에서)
const apolloServer = new ApolloServer({
	schema,
    playground: true,
});
await apolloServer.start();
apolloServer.applyMiddleware({
	app,
    path: "/graphql",
});

최종 코드

  • 나는 에러 처리를 위해서 함수화 시켰고, 함수를 호출해서 서버 구동시켰다.

에러

  • 현재 schema가 없기 때문에 에러가 난다. 다음 포스팅에 에러 해결과 이어서 정리하겠다.
profile
기록하는 블로그

0개의 댓글