Mongoose 트랜잭션
·
Backend/Mongoose
Transactions여러 작업을 하나로 묶어 모두 성공하거나 모두 실패(롤백)하도록 보장하는 기능. 결제와 같은 데이터 무결성이 핵심인 서비스에 필수 기능.Transactions 사용하기import mongoose from "mongoose";import { Post, MyPostsContainer } from "@/Models/index.js";const createPost = async (req, res) => { const { user_id } = req.header; const { title, content } = req.body; /* * session 객체 생성 */ const session = await mongoose.startSession(); try { ..
Bcrypt
·
Backend/Bcrypt
Bcrypt비밀번호를 해싱하거나 해시를 검증하는 라이브러리Npmnpm install bycrypthashconst bcrypt = require("bcrypt");const { User } = require("../model/user.js");app.post("/sign_up", async (req, res) => { const { email, password } = req.body; const saltRound = 10; const hashedPassword = await bcrypt.hash(password, saltRound); // 실무에서는 에러 처리가 필수 await User.create({ email, password: hashedPassword }); })Salt Round ..
Json web token
·
Backend/Jsonwebtoken
Json web tokenNode.js 환경에서 JWT를 생성하고 검증하는 라이브러리Npmnpm install jsonwebtokenJWT 토큰 생성jwt.sign(payload, secretKey, [options])const user = { email: "user1@gamil.com", nickname: "user1"}const option = { expiresIn: "1h"}jwt.sign(user, secreyKey, option)○ option 인자에는 만료시간(expressIn), 발급자(issuer), 대상(audience)을 키와 값으로 가진 객체를 넣을 수 있다.○ secretKey는 절대 노출되면 안되는 문자열 값으로, env파일에 보관하며 gitignore에 반드시 env파일을..
Mongoose
·
Backend/Mongoose
MongooseNode.js 환경에서 mongoDB를 다루는 ODM 라이브러리NpmMongoose 핵심 엔진npm install mongoose.env 파일 설정// .envDATABASE_URL= mongodb+srv://:@cluster0.tavhtgr.mongodb.net/?retryWrites=true&w=majority&appName=Cluster0○ 와 에 각각 mongoDB atlas 아이디와 비밀번호를 넣고, 마지막 path 경로에 데이터 베이스의 이름을 삽입한다.MongoDB Atlas 연결const mongoose = require("mongoose");dotenv.config();const connectDb = async () => { /* * 중복 연결 방지 */ if (mo..
Hyunsoo_kim
'Backend' 카테고리의 글 목록