Node.js(11)
-
bcrypt 사용방법 [ Javascript ] [ node.js ]
npm i bcrypt // 비밀번호를 DB 에 넣을때 const salt = await bcrypt.genSalt(4) // 기본값은 10, 숫자가 올라갈 수록 연산 시간과 보안이 높아진다. const hashed = await bcrypt.hash('비밀번호를 넣어주세요', salt) // hash 화 된 비밀번호를 만든다. // 비밀번호를 검증할 때 const validationPassword = await bcrypt.compare('입력받은 비밀번호', 'DB에 저장된 비밀번호') // 일치한다면 validationPassword 는 true, 아니면 false
2023.07.07 -
Joi [ TIL ] [ node.js ]
Problem api 를 만들때 일일이 if 로 유효성검사하는 것이 불편하였다. Try 괜찮은 라이브러리가 있나 npm 에서 찾아보았습니다. validation 을 검색했는데 인기있어보이는 라이브러리가 두 개 있었다. express-validator 와 joi 라는 것이 눈에 띄었는데, 둘 중 다운로드 수가 가장 많은 joi 를 선택했다. const Joi = require('joi'); const schema = Joi.object({ username: Joi.string() .alphanum() .min(3) .max(30) .required(), password: Joi.string() .pattern(new RegExp('^[a-zA-Z0-9]{3,30}$')), repeat_password: ..
2023.07.03 -
express [ TIL ] [ node.js ]
Problem express 는 무엇인가 Try npm install express const express = require('express') const app = express() const port = 4001 app.get('/', (req, res) => { res.send('안녕 세상아'); }) app.listen(port, () => { console.log(`http://localhost:${port} 연결완료`) }) Solve - node.js 위에서 동작하는 웹 프레임워크 - node.js 개발 시 개발을 빠르고 손쉽게 도와주는 역할, 이는 미들웨어 구조 때문에 가능한 것이다. 자바스크립트 코드로 작성된 다양한 기능의 미들웨어는 개발자가 필요한 것만 선택하여 express 와 ..
2023.06.25 -
PM2 사용
node.js & mongoDB 를 우분투에서 계속 실행할 수 있는 방법에는 PM2 가 있다. node.js 를 실행하고 관리하도록 만들어진 pm2 를 이용한다. pm2 란 프로세스 매니징 도구로 node.js 를 편하게 관리할 수 있게 도와주는 라이브러리 이다. 대표적으로 터미널을 종료하더라도 웹 서버가 실행될 수 있게 하거나 로그 정보들을 실시간으로 확인한다. sudo -s npm install -g pm2 pm2 start app.js 프로젝트 종료하는 법 pm2 delete 0 pm2 list 를 입력했을 때 프로세스가 존재하지 않다면 성공적으로 종료된 것이다. pm2 재시작 pm2 restart app.js. # app.js를 재시작합니다. pm2 restart [idNumber] pm2 관리중..
2023.06.24 -
async / await [ TIL ] [ node.js ]
Problem express 를 이용하여 간단한 게시판 api 를 만들던중 undefined 가 발생했다. Try router.post("/", async (req, res) => { console.log(req.body); try { const { title, content, userId } = postCreateValidation.validateAsync( req.body ); console.log(title, content, userId); const post = await Post.create({ title, content, userId, }); res.json(post); } catch (err) { if (err.isJoi) { return res.status(422).json({ messa..
2023.06.22