일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- Express
- 게임
- MongoDB
- typeORM
- cookie
- dfs
- nodejs
- class
- react
- JavaScript
- 정렬
- Bull
- TypeScript
- Queue
- mongoose
- flask
- Nest.js
- nestjs
- GIT
- Dinosaur
- game
- jest
- AWS
- 자료구조
- MySQL
- 공룡게임
- Python
- Sequelize
- OCR
- Today
- Total
목록MongoDB (32)
포시코딩
이전 게시글에서 bcrypt 를 이용해 암호화 하는 방법을 알아봤으니 기존에 있던 회원가입 로직을 받아낸 비밀번호를 암호화 한 이후에 동작하게 조합하였다. router.post('/register', (req, res) => { let id = req.body.id; let pw = req.body.pw; const saltRounds = 10; bcrypt.hash(pw, saltRounds, (err, hash)=>{ try { db.collection('login').findOne({ id: id }, (error, result) => { if (result) { res.send({ code: 0 }); } else { db.collection('login').insertOne({ id: id, p..
최근 현업쪽에서 bcrypt 를 많이 쓴다고 한다. 좀 살펴봤더니 귀찮게 salt 생성하고 같이 저장하는 방식이 아니라 한번 써볼거임 일단 bcrypt 라이브러리를 사용할 수 있게 터미널을 통해 설치한다. npm install bcrypt salt 대신 같은 salt 를 몇번이나 여러번 돌릴지 횟수를 지정해줌 const saltRounds = 10; bcrypt.hash(beforePassword, saltRounds, (err, hash)=>{ // hash: afterPassword try { // db 에 회원정보 저장하는 코드 } catch { console.log('err: ' + err); } }) 그럼 hash 파라미터 부분에 암호화된 비밀번호가 저장되고 해당값을 db 에 저장하여 사용하면 ..
전달 받은 값을 DB 에 저장해보자 router.post('/register', (req, res)=>{ console.log('in register post'); let id = req.body.id; let pw = req.body.pw; db.collection('login').insertOne({id: id, pw: pw}, (error, result)=>{ res.status(200).send({message: 'ajax 통신 성공 - id: ' + id + ', pw: ' + pw}); }) }) login 콜렉션 안에 insertOne 을 통해 id 와 pw 값을 집어넣는 코드 성공일 경우 error 값이 undefined 가 되고 result 값이 리턴, 실패일 경우는 그 반대로 리턴된다...
로그인 하려면 아이디가 있어야 되니까 회원가입부터 만들거임 회원가입 입력폼 회원가입 아이디 비밀번호 회원가입 뒤로 이대로 회원가입 버튼을 submit 해서 보내도 되지만 ajax 를 이용해 데이터를 보내면서 아이디 중복체크까지 하며 결과를 받을 생각이다. submit 해버리면 해당 페이지에서 응답을 받을 수 없으니깐 회원가입 버튼을 눌렀을 때 ajax 통신을 하게 코딩해봄 jquery 불러오는 코드 밑에 해야하는건 기본! 통신에 성공했을 때 받는 값을 테스트해볼겸 result 와 result.message 를 출력하게 해보았다. member.js router.post('/register', (req, res)=>{ console.log('in register post'); let id = req.bod..
const db_url = 'mongodb+srv://admin:@cluster0.pygfy.mongodb.net/?retryWrites=true&w=majority'; 이전 게시물에서 안내한대로 세팅한 db_url 의 admin 과 password 부분에는 당연히 클러스터를 만들며 세팅한 사용자명과 비밀번호가 대신 들어가면 된다. 실제로 회사 다니면서 여러 서버를 관리하며 느낀건 이런 기본 세팅들은 다 비슷하게 하고 저런 바뀔 수 있는 부분만 따로 빼내어 관리하면 해당 프로젝트 세팅을 복사해서 차기 프로젝트를 만들기도 쉽고 깃허브 같은 버전관리툴에도 코드랑 같이 업로드 할 필요가 없어서 보안적으로도 좋다는 것이다. 그래서 나는 다음과 같이 코드를 변경해봤다. // const db_url = 'mongo..
https://cloud.mongodb.com MongoDB Cloud MongoDB Cloud is a unified data platform for modern applications and includes a global cloud database, search, data lake, mobile, and application services. www.mongodb.com mongodb 사이트에 들어가 구글 아이디로 접속한 후 mongodb free tier 관련 구글링해서 클러스터를 구축한다. 설명 잘되어있는 블로그 많음 나는 Google Cloud 에 한국 리전을 선택했다. 클러스터를 만들면 아래와 같은 메인 화면일 것이다. 왼쪽 하단 빨간 동그라미 친 Network Access 누르고 Add I..
로그인 페이지와 비슷하게 회원가입 페이지도 하나 만들어주었다. - login.ejs - register.ejs 이제 server.js 에 아래처럼 두 라우터가 있는데 app.get('/member/login', (req, res)=>{ res.render('login.ejs'); }) app.get('/member/register', (req, res)=>{ res.render('register.ejs'); }) server.js 에는 앞으로 여러 라이브러리 선언 등의 코드들이 올거기 때문에 좀 더 보기 편하도록 해당 코드들을 따로 빼줄거다. 일단 nfp 프로젝트에 routes 폴더 추가 후 member.js 파일 생성 member.js 파일 오픈 후 아래 코드 추가 var router = requi..
메인은 나중에 게시글 리스트 페이지로 대체해줄거니 잠시 놔두고 로그인 페이지를 만들어보자 그전에 jquery 랑, bootstrap 쓸거라 index.ejs 에 해당 cdn 들 가져와서 추가 Hi NFP 앞으로 새 ejs 파일을 만들 때 항상 index.ejs 파일 복사해서 쓸거임 css 쪽으로는 만족하려면 한도끝도 없기 때문에 대충 부트스트랩을 이용해 최소한으로만 보기 좋게 할 생각이다. login.ejs 파일을 만들고 로그인을 위한 요소를 몇개 만들어주자. 로그인 아이디 비밀번호 로그인 아이디가 없나요? 해당 파일로 가기위해 server.js 에서 라우팅을 해주자 라우팅이 뭐냐면 간단히 말해서 server.js 에서 아까 한 app.get('/경로')~ 를 통해 ejs 파일로 경로를 지정해주는거임 a..
서버를 켰으니 접속해보자 내 컴퓨터 상에서만 서버가 돌아가고 포트는 8080 으로 설정했으니 브라우저를 열고 localhost:8080 로 접속하면 된다. 아직 아무런 페이지, 경로설정도 없이 서버만 실행시켰기 때문에 위처럼 뜨는게 정상 nfp 프로젝트에 views 폴더를 만들고 메인페이지를 위한 index.ejs 파일을 만든다. html 파일에서는 서버에서 보낸 데이터를 활용하기 힘들기 때문에 ejs 라이브러리를 사용하는거임 ejs 파일은 views 폴더 안에 위치해야 한다. server.js 에도 ejs 라이브러리 사용을 위한 아래 코드 입력 app.set('view engine', 'ejs'); 당연히 const app 선언 밑에 써야한다. 그 다음 localhost:8080 을 요청했을 때 만..
1. 서버 실행 환경 파일 설치 npm install express sudo npm install -g nodemon npm install ejs npm install express -> nodejs 프레임워크인 express 설치 sudo npm install -g nodemon -> sudo: 관리자명령 -> -g: global로 설치 -> nodemon: 서버 자동 재실행 npm install ejs -> html 을 다이나믹하게 쓸 수 있게 해주는 라이브러리 2. 서버 실행 코드 입력 server.js 파일을 생성해서 아래 내용 입력 const express = require('express'); const app = express(); app.listen(8080, ()=>{ console.l..