🤟
Vanilla-JS
  • TRIPLE-PLUS Adout
  • Babel.JS
  • 01.Vanilla-JS
    • 01. Hello JavaScript
    • 02. 변수
      • 02-1.지키면 좋은 룰(더 좋은 스타일을 위해서)
      • 02-2.숫자형꿀팁(수식 줄이기)
    • 03. 연산자
    • 04. 조건문
    • 05. 함수
      • this의 의미 6개 총정리
      • event listener와 constructor
      • 05-1. return:돌려주다
      • 05-2. 형 변환 함수
      • 05-3. Arrow function
    • 06. 객체
    • 07. 배열
      • 07-1. 배열 안에 배열(2차 배열)
      • 07-2. 배열내장 함수(forEach)
      • 07-3. 배열내장 함수(sort)
      • 07-4. 배열내장 함수(map)
      • 07-5. 배열내장 함수(indexOf)
      • 07-6. 배열내장 함수(filter)
      • 07-7. 배열내장 함수(splice, slice)
      • 07-8. 배열내장 함수(shift, unshift, pop, push)
      • 07-9. 배열내장 함수(concat, join)
      • 07-10. 배열내장 함수(reduce)
      • 07-10. 배열내장 함수(reduce)2
    • 08. 반복문
    • 09. Class와 프로토타입
      • 09-1. 프로토타입과 클래스 - 생성자
      • 09-2. 프로토타입과 클래스 - 생성자 상속하기
      • Class & Constructor & Method
      • super
      • Static Method
      • Class Getter, Setter
      • Information Hiding
      • Inheritance & Polymorphism
      • Overriding
      • Abstract Class
      • Interface
    • Math 정리
    • String 정리
    • Array정리
    • Date 정리
      • D-day 구하기
  • 02.Vanilla-JS
    • 01.삼항연산자
    • 02. Truthy and Falsy
    • 03. 단축 평가 논리 계산법
    • 04. 함수 업그레이드 (default parameter/arguments)
    • 05. 조건문 더 스마트하게 쓰기
    • 06. 비구조화 할당 (구조분해) 문법
    • 07. spread 와 rest
      • 함수 파라미터에서의 rest(params)
      • 함수 인자에서의 spread
    • 08. 자바스크립트의 Scope 에 대한 이해
    • 09. Hoisting 이해하기
    • 10. Native DOM 선택
  • 03.비동기 처리
    • 01. fetch, then, catch[Promise] 이해하기
    • 02. 직접 만들어보는 Promise 객체
    • 03. async/await
    • 04. Promise all, Promise.race
  • REST API 제대로 알고 사용하기
    • mongodb Atlas
    • mongodb Atlas(DB)에 접근하려면
    • URL 이름짓기 관습
    • Database에 자료 저장하는 법
    • 게시물마다 번호를 달아 저장하기
    • 게시물마다 번호를 달아 저장하기2
  • JQUERY + SCRIPT 유용한 코드 정리
  • Practice(실습)
    • 카운터 만들기
    • reduce
    • 데이터 자료형 활용하기1
    • 데이터 자료형 활용하기2
    • 데이터 가지고 놀기(응용)1
    • 데이터 가지고 놀기(응용)2
    • REST API
    • 배열 만들기1
    • 배열 만들기2
    • 배열 만들기3
    • 비구조화 할당
    • rest + spread(응용)1
    • rest + spread(응용)2
    • rest + spread(응용)3
    • 반복문 내장함수(응용)1
    • 함수 가지고 놀기(응용)1
    • 서버와의 통신1
    • 서버와의 통신2
    • new Promise(응용)2
    • new Promise(응용)3
    • 자바스크립트 이벤트 위임 핵심 정리
Powered by GitBook
On this page
  • DB와 통신
  • collection에 자료 하나 추가하는 법
  • _id 라는건 왜 붙이죠?

Was this helpful?

  1. REST API 제대로 알고 사용하기

Database에 자료 저장하는 법

DB와 통신

이제 app.js 파일 코드를 짜서 db와 통신해보도록 합시다.

let db;
MongoClient.connect('접속URL', { useUnifiedTopology: true }, function (에러, client) {
	if (에러) return console.log(에러)
	db = client.db('todoapp');

	app.listen(8080, function () {
		console.log('listening on 8080')
	});
});

( { useUnifiedTopology: true }, 이건 쓰면 좋습니다. 워닝메세지를 제거해줍니다.)

이렇게 여러분 코드를 바꿔주시면 됩니다. 첫줄과 넷째줄에 코드가 추가되었죠? let db;로 페이지 전체에서 쓸 수 있는 전역 변수를 하나 만들고, 그리고 client.db(‘todoapp’) 이라는 이상한 함수로 todoapp 이라는 database 에 접속해주세요. 라는 코드 입니다.

collection에 자료 하나 추가하는 법

세줄만 쓰시면 아까 만든 collection에 내가 원하는 자료를 추가해볼 수 있습니다.

var db;
MongoClient.connect('접속URL', { useUnifiedTopology: true }, function (에러, client) {
	if (에러) return console.log(에러)
	db = client.db('todoapp');

        db.collection('post').insertOne( {이름 : 'John', _id : 100} , function(에러, 결과){
	    console.log('저장완료'); 
	});

	app.listen(8080, function () {
		console.log('listening on 8080')
	});
});

중간에 세줄이 추가되었습니다. DB에 자료 추가할 일이 있을 때마다 저거 세줄 쓰시면 됩니다. db.collection(‘post’) 라는건 collection 중에 post 라는걸 선택한다는 뜻이고 뒤에 insertOne을 붙이시면 자료를 추가할 수 있습니다. (Object 자료형식으로 추가가능) 그리고 insertOne 함수는 insertOne(추가할 자료, 콜백함수) 이렇게 쓰시면 되겠습니다.

db.collection('post').insertOne()

이 패턴 잘 기억해주시길 바랍니다. 나중에 데이터 추가하고 삭제하고 수정할 때도 이거와 동일한 형식으로 쓸 거니까요. (서버개발은 이해보다 패턴 외우는게 중요합니다!!)

몇줄에 걸친 긴 코드를 합쳐서 한번에 작성한다면

client.db(‘todoapp’).collection(‘post’).insertOne(추가할 자료, 콜백함수)

이렇게 쓰셔도 됩니다.

_id 라는건 왜 붙이죠?

mongoDB에선 자료들을 서로 구분하기 위해 _id가 꼭 있어야합니다. 일종의 출석번호라고 생각하시면 됩니다. 이걸 직접 집어넣으셔야 하는데 안집어넣으시면 알아서 하나 만들어줍니다. _id : ObjectId(어쩌구) 이런 식으로 유니크한 아이디를 하나 부여해줍니다. 근데 보기싫으니까 보통 번호붙여 저장하시면 되겠습니다. 번호 붙이는 법에 대해 알아봅시다.

PreviousURL 이름짓기 관습Next게시물마다 번호를 달아 저장하기

Last updated 5 years ago

Was this helpful?