일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 | 31 |
- 프로토콜
- 자바스크립트기본
- 자바스크립트 학습
- 자바스크립트학습
- vue.js학습
- JS
- 자바스크립트
- JavaScript
- 프론트엔드 공부
- 리액트
- 프론트엔드
- node.js
- react
- 네트워크
- node.js학습
- 개발자지식
- 프론트엔드학습
- nodejs
- js학습
- js ajax
- 개발자학습
- node.js 학습
- API
- Vue.js
- 개발공부
- 프론트엔드공부
- node.js프로젝트
- MongoDB
- 정보처리산업기사
- 개발자공부
- Today
- Total
dada's
[Node.js] node.js 프로젝트 - To Do App 만들기 7 (게시물마다 번호 달기 ) 본문
MogoDB에 데이터를 저장하고 보면 '_id'라는 값이 추가되어 저장된다
이 값을 설정하지 않고 저장하면 MongoDB에서 알아서 만들어서 강제로 부여해준다
데이터를 구분하고 관리하기 위해서는 데이터만의 고유한 값을 가지고 있어야 관리하기 편하기때문이다
이 아이디를 활용해서 데이터를 가져다 쓰기 쉽게 하기 위해 게시물마다 1,2,3....이런식으로 순서대로 번호를 부여해보자
[게시물마다 아이디 부여하는 방법]
1. MongoDB사이트에 접속하고 대시보드에서 collection을 하나 더 만든다
프로젝트 진행중인 todoapp저 부분에 마우스 가져다 대면 +버튼 나오니 그걸로 counter라는 collection을 하나 더 생성했다
그리고 insert document버튼을 클릭해서 데이터를 하나 만들어주는데 totalPost안에 총게시물 갯수를 저장 해 줄거다

2. 게시물을 POST요청하고 있는 곳에 코드를 추가하자
//DB저장 방법
app.post('/write', function (요청, 응답) {
db.collection('counter').findOne({ name: '게시물갯수' }, function (에러, 결과) {
var totalPost = 결과.totalPost;
db.collection('post').insertOne({ _id: totalPost + 1, title: 요청.body.title, text: 요청.body.formText }, function (에러, 결과) {
db.collection('counter').updateOne({ name: '게시물갯수' }, { $inc: { totalPost: 1 } }, function (에러, 결과) {
// 문법 : db.collection('counter').updateOne({어떤 데이터를 수정할지},{수정값})
if (에러) { return console.log(에러) };
});
});
});
응답.redirect('/list');
//post요청이 끝나고 해당 페이지로 이동하는 문법
});
//auto increment : 글번호 달아서 저장하는것인데 db에 거의 다 있지만 mongoDB는 없음
💡용어정리💡
• findOne() : collection내에서 원하는 문서를 쉽게 찾아주고 찾은 결과는 function 안에 결과라는 파라미터에 담긴다. (에러는 에러 났을 경우임)
• insertOne() : insert를 대체하기 위해 만들어 졌으며 단일 도큐먼트를 삽입하는 명령어이다.
• updateOne() : collection내의 자료를 수정하고 싶을때 사용한다.
[updateOne() 추가 설명]
updateOne()은 파라미터가 3개가 필요하다
1. 첫번째 파라미터 : 자료를 찾을 수 있는 이름이나 쿼리문을 적어주면된다
2. 두번째 파라미터 : 수정할 값을 입력하면 되는데 operator라는 문법이다 종류가 많은데 내가 사용한 $inc은 숫자만큼 더해준다는 의미다.
3. 세번째 파라미터 : 콜백함수이다. 수정이 실패나 성공시에 실행할 코드를 안에 담으면 된다.
'Node.js' 카테고리의 다른 글
[Node.js] node.js 프로젝트 - To Do App 만들기 8 (AJAX로 삭제 요청하기 ) (0) | 2022.07.05 |
---|---|
[Node.js] node.js 프로젝트 - To Do App 만들기 6 (HTML에 DB데이터 넣는법) (0) | 2022.06.27 |
[Node.js] node.js 프로젝트 - To Do App 만들기 5 (Database에 자료 저장하기 + MongoDB) (0) | 2022.06.21 |
[Node.js] node.js 프로젝트 - To Do App 만들기 4 (폼에 입력한 데이터를 서버에 전송하기 POST요청) (0) | 2022.06.20 |
[Node.js] node.js 프로젝트 - To Do App 만들기 3 (서버에서 HTML파일 전송) (0) | 2022.06.18 |