express 이용해보자!

npm install express npm에서 express를 설치 매우 간단하지만 완성된 서버 //server.js const express = require('express'); const app = express(); app.get('/', (req, res) => { res.send('Hello World!'); }); app.post('/post', (req, res) => { console.log(req.body); res.send('Got a POST request'); }); app.listen(3000, () => { console.log('Example app listening on port 3000!'); }); node server.js get은 body를 작성할수 없다. post는 body를 작성해서 받아올수 있다. 로그인 및 회원가입 처럼 데이터가 오가는 것은 post를 이용한다.

TIL-0202

목표 server get, post 조작하기 database 공부하기 npm 이해하기 서버를 다루다가 서버가 꺼지지 않고 계속 동작해서 테스트를 돌릴 수가 없을 때가 있었다. lsof -i:[포트번호] 를 이용해서 적어넣은 포트번호가 실행되고 있는지를 확인한다. kill -9 [PID] 실행되고 있다면 PID번호가 나오는데 적어 넣고 사용하면 강제종료된다. post를 보내려고 하다 보니 데이터를 담을곳과 꺼내올 곳이 필요해 데이터베이스를 공부했다.,… database 공부하기 이전에 공부하긴 했지만 한번더 확인하고 정리해본다. mysql -u root -p; 패스워드까지 입력하면 mysql에 들어간다. SHOW DATABASES;...

TIL-0203

목표 socket.io 공부하기 socket.io 공부하기 어제 서버를 만들어 보다가 오늘 socket.io에 대하여 공부를 하였다. socket.io란 모듈을 이용해서 서버와 클라이언트를 지속적으로 통신하도록 만들어준다. npm install --save socket.io 설치를 먼저 해야한다. const express = require('express'); const http = require('http'); const path = require('path'); const socketIO = require('socket.io'); const app = express(); const publicPath = path.join(__dirname, '../client'); app.use(express.static(publicPath)); let server = http.createServer(app).listen(3000, () => { console.log('listening.....3000'); }); let io = socketIO(server); io.on('connection', socket => { console....

TIL-0210

한 일 API문서 수정 카테고리 + 주소 JEST API문서 수정 API를 보내는 문서를 수정해서 notion 에 작성했다. 로그인,회원가입,회원탈퇴,음식점(카테고리+주소)에 맞게 요청을 받으면 응답해준다. 어떤값을 보내줘야 하는지와 어떻게 결과가 나오는지, 어떤 status code를 보내주는지 작성했다. 앞으로 작성하면서 계속해서 수정하게 될 것이다. 카테고리 + 주소 이전엔 카테고리만 분류해서 데이터를 보내줬으나, 오늘 주소를 같이 확인해서 데이터를 보내주게 변경했다. 그리고 데이터를 리스트따로, 메뉴따로, 보내려고 했으나, 서버로 쓰는 컴퓨터가 좋지않아서 속도가 오래걸렸다. 그래서 한번에 보내주고 클라이언트에서 보관하고 있는 방식으로 다시 리팩토링을 하였다....

TIL-0212

한 일 Json 토큰 리팩토링 cors JSON 요청을 받아서 응답을 해주는 과정에서 res.end() 를 하면 잘 전달이 되는데 res.json() res.send() 의 경우에는 전달이 되지 않는다….. 이문제는 계속해서 찾아봐야 겠다…. 로그인을 성공할 때 토큰을 클라이언트에 전달해줘야 하는 과정에서 필요한 부분이다. 토큰( JWT ) 토큰은 클라이언트와 서버가 로그인을 한 이후로 로그인정보를 필요로 하는 작업등에서 계속해서 로그인 정보를 요청하고 응답할때마다 전송해주는 경우에는 너무나도 보안이 취약하기 때문에 세션,쿠키 와 토큰등등의 방법으로 보안적인 이슈를 해결한다....

TIL-0213

한 일 headers socket.io headers 어제 마무리 하던 부분이지만 토큰을 전달 해주는 과정이 잘 되지 않아서 토큰을 전해줄 방법을 계속해서 찾았다. JSON, SEND, END 등을 이용해 토큰을 전달해보려 했지만 잘 되지 않아서 헤더부분에 담아서 보내니 잘 보내졌다. 클라이언트에서 사용할수도 있게 되었다. socket.io 오후에 시작해서 공부를 조금 하고 바로 적용해보려 했으나 잘 되지않았다. 계속해서 문제를 찾고 있었는데 저녁이 다되서 문제점을 발견했다. 문제는 socket.io를 받아오는 클라이언트의 스크립트주소가 잘못 되어 있었다. 공식문서나 다른 자료들을 찾으며 되는지 확인 했는데 잘 되지 않았다....

TIL-0214

한 일 socket.io socket.io 어제 못했던 socket 을 했다. 클라이언트에서 쓰는 소켓을 받아오는 주소를 변경하니 해결되었다. 이 문제 때문에 거의 반나절을 고생했고, 이 문제를 해결하고 나니 진행은 순식간에 되었다. 주문자 클라이언트에서 서버를 통해 식당 클라이언트로 전달되고, 다시 주문자에게 전달되는 과정까지를 진행하였다.

TIL-0217

한 일 token review token access token 을 만들었다. 토큰을 통해 이제 보안이 강화 되었다. 로그인이 필요한 작업들의 경우에 토큰을 이용해 인증을 하고 유효기간이 만료되면 사용할 수 없게 되는 구조로 만들었다. 내일 refresh token을 만들어서 좀더 편한 인증시스템을 만들게 될 예정이다. review 리뷰를 시작했다. socket.io를 통해 통신을 하고 마지막에 review를 작성하고 별점을 남기는 것이 DB에 들어 가게 할 수 있도록 api를 만들고 데이터베이스와 주문자 클라이언트를 연결했다.

TIL-0218

한 일 token review token refresh token 을 마무리하였다. 코드를 정리하고 두개의 토큰을 생성하는데 하나는 사용할 수 있는 토큰을 생성하는 토큰 하나는 통신에 이용되는 토큰으로 두가지 토큰을 이용해 보안을강화했다. review 주문자가 배달주문을 하면 음식점이 배달을 해주고 배달이 완료되면 배달완료버튼을 눌러 주문자에게 푸시알람이 가게 되어있는데 거기서 한번더 리뷰를 작성하면 다시 서버로 들어와 데이터베이스에 저장이 되도록 만들었다. 버그들을 수정하고 테스트를 통해 리뷰 작성하는 것이 데이터 베이스에 들어가는 것을 팀과 함께 확인했다.

TIL-0219

한 일 mongodb 권한 설정 mongodb 권한 설정 며칠전 코드리뷰를 통해 매우매우 중요한 파일을 github에 올려버렸다는걸 알게 되었다. config 파일이였는데 토큰의 암호와 DB의 접속하는 url을 적어두었는데 커밋이 되어버려서 우선 config파일을 숨기고, 급하게 암호를 바꾸고 DB의 접근을 막기 위해 권한설정에 대해 다시 공부했다. 처음에 시도할때는 잘 되지 않아서 그냥 풀어뒀는데 해결했다. 다시는 config파일을 깃에 올리지 말자…. 사용자 목록 확인 use admin show users 모든 데이터베이스내의 사용자 use admin cur = db.system.users.find()...