개발 이야기/backend

코딩애플 node.js강의 til 2 - 데이터 아이디 만들기

thisisamrd 2023. 10. 9.

서론

코딩애플 til 1은 무료강의 내용이라 til 올리기 괜찮았는데

이후 내용부터는 유료분이라 알아서 좀 걸러서 포스팅하기로 함.

코드를 가져다 써야 할 부분은 그냥 제 선에서 최대한 어글리하게 쓸게요..

 

코딩애플 강의 짱.

돈 하나도 안아까운 강의!!!

 

 

 

 

EJS 사용하는 방법


서버데이터 집어넣어서 html 만드는 법: ejs사용

npm install ejs



그리고 server.js에 아래 임포트

app.set('view engine', 'ejs');



이후 list.js의 확장자를 js대신 .ejs로 바꾸자.
파일 위치는 항상 views라는 폴더 안으로 위치시켜야함.


ejs파일 안에 변수 이름 작성하는 법은

 <%= 변수이름 %>



ejs 문법을 반복문 돌리려면 그냥 이 오징어같은 기호 넣으면 됨;

그리고 이건 내가 작성한 db를 ejs파일에 넣어서 보여줄때 사용하는 코드.

  <% for (var i=0; i<posts.length; i++){ %>
<h4>할 일 제목: <%= posts[i].제목 %> </h4>
<h4>할 일 마감날짜: <%= posts[i].날짜 %> </h4>
<% } %>

{posts : 결과} 처럼 object형으로 넣어야 한다.
posts는 ejs파일에서 object로 가져와서 쓸 수 있다.

 


/list로 get요청으로 접속하면 실제 db에 저장된 데이터들로 예쁘게 꾸며진 html을 보여줌.

 

app.get('/list', function (요청, 응답) {
    // 데이터를 다 찾아서 가져옴
    db.collection('post')
        .find()
        .toArray(function (에러, 결과) {
            console.log(결과);
            // 누군가 /list로 접속하면 list/ejs로 렌더링해줘라
            응답.render('list.ejs', { posts: 결과 });
        });
});

 

 

 

id 작성하기 & 데이터 수정하기


counter라는 컬렉션을 하나 더 만들어서 id를 관리해줌.
유니크한 id를 관리하기 위함.
counter에 데이터 하나를 만들고

 

totalPost: 0,

name: 개시물 갯수

 

라는 항목을 만듦.

그리고 post라는 컬렉션에서 id를 추가할 때 이 counter의 개수에 +1을 해서 가져오고,
또 한편 counter에서 id도 추가로 +1 해주는 방식임.

update를 할 때는 operator를 써야함.

 

{ $set: { totalPost: 1 } }

이게 operator라는 문법임.


$set 은 '바꿔주세요'라는 연산자임.

{$set: {totalPost: 바꿀 값}}
{$inc: {totalPost: 기존값에 더해줄 값}}
   db.collection('counter').updateOne(
{ name: '게시물 갯수' },
{ $inc: { totalPost: 1 } },
function () {}
);

 

댓글