Node.js,MongoDB
-
URL 파라미터Node.js,MongoDB 2022. 4. 7. 13:48
각 글을 누르면 상세페이지로 이동하게 만들어보자. 상황을 보면 글번호1을 누르면 detail1.ejs로 가고 글번호 4를 누르면 detail.ejs로 가야한다. 파일을 여러개 만드는 것도 방법이겠지만 간단하게 만들 수 있다. // /detail로 접속하면 detail.ejs보여줌 detail1로 접속시 detail1.ejs로 가게하기 app.get('/detail/:id', function(요청, 응답){ //:id를 입력하면 detail/어쩌구로 GET요청을 하면 이란 뜻임 URL Parameter로 불림 db.collection('post').findOne({ _id : parseInt(요청.params.id) }, function(에러, 결과){ //요청.params.id는 파라미터 중 :id라는 ..
-
ajax로 삭제요청Node.js,MongoDB 2022. 4. 6. 02:31
삭제를 할 때 DELETE요청을 하면 된다. form태그의 method="post"를 delete로 바꾸면 되지 않을까 생각할 수 있지만, html상에서 delete요청을 할 순 없다. 그래서, 2가지 방법이 있다. 1. method-override라이브러리를 사용하거나 2. js ajax를 이용하거나 2번을 이용해서 delete를 해보자. Ajax의 가장 큰 장점은 새로고침 없이 서버에 요청하는걸 도와준다. 서버에서 가져온 할일 리스트 할일 제목 : 할일 마감날짜 : 삭제 먼저, list를 이쁘게 만들어주고 $.ajax({ method : 'DELETE', url : '요청할경로', data : '요청과 함께 보낼 데이터' }) 제이쿼리cdn을 먼저 써주고, 아래에 script태그를 만들어 위처럼 입력..
-
게시물 각각에 번호달기(numbering)Node.js,MongoDB 2022. 4. 4. 13:42
글을 저장할 때 꼭 번호를 달아줘야 한다. 몽고db에 counter 라는 새로운 connection을 만들어준다. 그리고INSERT DOCUMENT를 이용해 기본값을 만들어준다. totalPost를 0으로 해서 게시물이 추가되면 여기에 1씩 더해지도록 만들면 된다. app.post('/add', function(요청, 응답){ 응답.send('전송완료'); db.collection('counter').findOne({ name: '게시물갯수'}); db.collection('post').insertOne({ _id : 총게시물갯수 + 1, 제목 : 요청.body.title, 날짜 : 요청.body.date}, function(에러, 결과){ console.log('저장완료'); }); }); 그 다음, ..
-
HTML에 DB데이터 넣기Node.js,MongoDB 2022. 4. 4. 10:29
MongDB에 넣은 할일 제목 : ? 할일 마감날짜 : ? 이런 데이터들을 위의 html에 직접 넣어 이쁜 UI를 만들 때 EJS라는 라이브러리를 사용한다. EJS는 html을 좀 더 쓰기 쉽게 도와주는 전처리엔진이다. npm install ejs 터미널에 이렇게 입력해 우선 라이브러리를 설치해준다. 그 다음, server.js 상단에 app.set('view engine', 'ejs'); 이렇게 입력해주면 준비가 된다. 그리고 사용하려던 list.html파일 이름을 list.ejs로 바꿔준다. 그 다음, server.js에 아래처럼 입력한다. // /list로 GET요청으로 접속하면 // 실제 DB에 저장된 데이터들로 예쁘게 꾸며진 html로 보여줌 app.get('/list', function(요청,..
-
MongoDB에 자료저장Node.js,MongoDB 2022. 4. 1. 17:27
MongoClient.connect('mongodb+srv://ross1222:dlwnsdud12@cluster0.ivzfq.mongodb.net/todoapp?retryWrites=true&w=majority', function(에러, client) { //연결되면 할 일 //에러라는 파라미턴 에러가 발생하면 어떤 유형인지 알려줌 if(에러){return console.log(에러)} app.listen(8080, function(){ console.log('listening on 8080') }); }) 먼저, 저번 시간에 작성한 코드에서 에러라는 파라미턴 에러가 발생시에 어떤 유형인지 알려주는 역할을 한다. 그리고, 위에와 같이 if문을 추가하면 에러가 났을 때, 어떤 유형인지 알려주게 된다. 이제..
-
MongoDB셋팅Node.js,MongoDB 2022. 3. 31. 13:12
저번 시간을 간략하게 복습해보면 1. 서버로 데이터 전송할 수 있는 UI를 만들고, 2. 서버에서 원하는대로 정보를 처리해주면 된다. 이렇게 두가지를 배웠다. 이제 유저가 보낸 데이터를 저장하는 방법을 배워보자. DB의 종류로 1. 관계형 (엑셀처럼 칸이 나뉘어 있다) -MySQL, MariaDB, Oracle, MS SQL Server등이 있다. 데이터 이름 달고, 실제 데이터를 기입한다. 하지만 3차원을 담진 못한다. 그래서 보통 다른표를 만들어 작성한다. 그리고 SQL이라는 언어를 사용해야 한다. 2. NoSQL (SQL언어 사용 싫을 때) -Dynamo, Oracle NoSQL, MongoDB, Redis, Cassandra등이 있다. Object자료형으로 입출력이 가능하다. 여기서 MongoDB..
-
REST APINode.js,MongoDB 2022. 3. 31. 10:37
서버를 만들 때 REST하게 API를 짜는게 좋다는 말이 나온다. 우선 API는 Application Programming InterFace로 서버와 고객간의 소통방법을 뜻한다. 즉, 어떻게 소통할 지 소통 규약을 뜻한다. 이 API들을 어떤 식으로 만들지가 REST API이다. REST원칙 6개가 있다. 1. Uniform interface (간결하며, 형식이 일관적이고 URL이 예측가능해야함) -하나의 자료는 하나의 URL로 -URL 하나를 알면 둘을 알 수 있어야 함 - 요청과 응답은 정보가 충분히 들어있어야 함 2. Client-Server 역할구분 (관계를 명확히 해라) -브라우저는 요청만 할 뿐 -서버는 응답만 할 뿐 3. Stateless -고객들의 요청1과 요청2는 의존성이 없어야함 (각각..
-
POST요청(form)Node.js,MongoDB 2022. 3. 31. 09:58
버튼을 누르면 form에 입력한 제목과 날짜를 서버로 전달해보자. 그럴려면 form 에 들어가야하는 요소가 있는데, method는 정보를 어떤 형태로 전달할건지 정한다.(GET,POST있음) action은 경로를 설정한다. 즉, /add경로로 POST요청을 한다. 이제 server.js에 작성해보자. //어떤 사람이 /add경로로 POST요청을하면... //??를 해주세요 app.post('/add', function(요청, 응답){ 응답.send('전송완료') }); 이렇게 적어주고, form태그에 내용을 입력하고 버튼을 누르면 화면에 전송완료 글씨가 생긴다. 그러면 이때, input에 적은 정보는 어디로간걸까? 정보들은 요청이란 파라미터에 저장된다. 근데 쉽게 꺼내쓰려면 body-parser라는 라이..