오래 앉아있었지만 많은 걸 하지 못했다.
시간 단위로 내가 뭘 하는지 기록해야겠다. 타이머를 이용해서 정해진 시간에 정해진 공부를 해야겠다. 시간이 너무 많이 주어지면 낭비하는 시간도 많아지는 것 같다.
데이터베이스 쪽 공부할게 많다. 항해99 기간 동안 집중해야할 걸 선택해야겠다.
시퀄라이즈 쿼리
gt >
lt <
gte ≥
lte ≤
in [1, 2, 3] ⇒ 1,2,3 중에 있는지 확인
ne ⇒ not equal
Op 객체 안에 들어있다.
AND는 where안에 ,(콤마)로 하면 되지만
OR는 Op.or을 써서 배열안에 넣어줘야한다.
order은 2차원 배열이다. 왜 2차원 배열이냐면 여러가지 기준으로 할 수 있다.
나이로 했다가 생성일 순으로 다시 정렬해라 할 수 있다.
[[’age’, ‘desc’], [’createAt’, ‘asc’]]
in예시
예를 들어 1,3,5번 사람을 지우고 싶으면
User.destroy({where: { id: 1}})
User.destroy({where: { id: 3}})
User.destroy({where: { id: 5}}) 이렇게 3번 적어주는게 아니라
User.destroy({ where: { id: {[Op.in]: [1,3,5]}}})
User.destroy({ where: { id: {[Op.ne]: 5}}}) 이렇게 하면 5번을 제외하고는 다 지워줘라는 말이다.
콜백함수가 뭔데?
함수에 파라미터(매개변수)로 들어가는 함수
왜 쓰는데?
순차적으로 코드를 실행하고 싶을 때 쓴다.
document.querySelector('.button').addEventListener('click',function(){})
버튼 누르면 이 코드 실행해주세요~
setTimeout(function(){},1000)
1초 후에 이런 코드 실행해주세요~
다른데서 만든 함수도 콜백함수로 넣을 수 있다
콜백함수에 함수명 작명할 순 있음 setTimeout(function 함수명() {},1000)
콜백함수를 아무데나 다 집어넣을 수 있는게 아니라 넣으라고 돼 있는 함수들만 집어넣을 수 있다.(내가 만든 함수를 쓰는게 아니면)
콜백함수 만드는 법
function first(파라미터){
파라미터()
}
function second(){
}
first(second) "first함수안의 코드 실행해주세요~ 근데 파라미터에 second 집어넣어서"
(예시)
function sum(callback, a, b){
a + b;
callback(a,b)
}
function explain(a,b){
console.log(`${a}와 ${b}를 더하면 ${a+b}이다`)
}
sum(explain,2,3) //2와 3를 더하면 5이다
순차적으로 코드를 실행하고싶을 때 사용
function first(파라미터){
console.log(1)
파라미터()
}
function second(){
console.log(2)
}
first(second)
first()
second()
이렇게 실행해도 순차적으로 나오는데 왜 콜백함수를 씀??
비동기 처리되고 할 때 순차적으로 실행안될 수도 있다. console.log가 아니라 둘 다 DB에서 데이터를
받아오는 경우라 생각해보자.
first 함수 보다 second함수가 더 빨리 받아왔다면 second가 먼저 실행될 수 있다.
콜백헬
DB에서 데이터뽑고 싶다 근데 A뽑고 그다음에 B뽑고 그다음에 C뽑고(순차적으로)
이걸 콜백함수로 하면...
db.collection('post').findOne(A, function() {
db.collection('post').findOne(B, function(){
db.collection('post').findOne(C, function(){
})
})
})