vmware로 윈도우에서 리눅스 사용하기
Node.js는 JavaScript를 브라우저 없이 실행 가능한 플랫폼
express nodejs를 이용하여 개발하는 프레임워크
패키지제이슨파일 만들고
npm init -y
라이브러리 설치
npm install express
npm install mongoose
//api만들기 비동기적처리 req,res가진 콜백함수만들기
router.post("/todos",async(req,res)=>{
const{value} = req.body;
const maxOrderByUserId = await Todo.findOne().sort("-order").exec();//order값을 역순으로 조회
//값이 있을때는 maxOrderByUserId.order+1할당 없을때는 1 할당
const order = maxOrderByUserId ?
maxOrderByUserId.order+1 ://maxOrderByUserId 있을 때
1;//maxOrderByUserId 없을 때
const todo = new Todo({value,order});
await todo.save();//해당하는 todo값을 table에 추가
res.send({todo});
})
router.patch('/todos/:todoId',async(req,res)=>{
const {todoId} = req.params;
const {order} = req.body;//order변경을 받아
//1. todoId에 해당하는 할 일이 있음?
//1-1 todoId에 해당하는 할 일이 없으면 에러 출력
const currentTodo = await Todo.findById(todoId);
//findById 값들어오면 일치하는거 뽑는 메소드
if(!currentTodo){//비어있으면
return res.status(400).json({"errorMessage":"존재하지 않은 할 일 입니다."});
}
if(order){//받아온 order로 찾아
const targetTodo = await Todo.findOne({order:order}).exec();
//order라는 키를 가진 order라는 변수를 가진 데이터 찾음
if(targetTodo){//바꿀대상이있으면
targetTodo.order = currentTodo.order;
await targetTodo.save();//바뀌는 위치에 이동전 위치를 넣어줘서 바꿈
}
currentTodo.order = order;
await currentTodo.save();
//바꿀대상에 자신의 order넣고 받아온 변한 order을 todoId에 맞게 넣어
}
res.send();
})
TodoSchema.virtual("todoId").get(function(){
return this._id.toHexString();
});//_id를 todoId라는 가상의 컬럼으로 만들어서 보여줄거
TodoSchema.set("toJSON",{virtuals:true});
JSON형태 데이터를 안전하게 교환(암호화)
여러가지 암호화 알고리즘 사용가능
인터넷 표준
데이터를 표현하는 방식
header.payload.signature 3형식으로 3가지 데이터 포함
특징
JWT는 암호케 몰라도 복호화가 가능
내일
할 일 삭제 구현
내용 수정 구현