이번에 참여하고 있는 프로젝트에서 API 서버를 구현 및 유지보수하는 일이 있었는데,
거기서 관리자만 접근하게 해줄 DB 데이터가 있었다.
해당 값에 필터링하여 접근하기 위해 관리자의 token을 따로 관리하여 쿼리에 where문을 추가하려 하였는데 이 과정에서 list.includes를 쓰자 포스트맨 테스트에서는 잘 되던게 이상하게 어플 프론트로만 가면 필터링이 되지 않는 문제가 발생하였다.
이 경우에는 list.includes()가 아닌 list.indexOf()를 사용하면 해결할 수 있다.
l1 = [1, 2, 3]
console.log(l1.includes(1))
// true
console.log(l1.includes(0))
// false
consoel.log(l1.indexOf(1) == -1)
// false
console.log(l1.indexOf(0) == -1)
// true
위와 같이 동작하므로 리스트에 없는 것을 찾을 때는 반환값이 -1인 경우를, 반대의 경우에는 -1이 아닌 경우로 필터링하면 좋을 것 같다.
(평소에 사용하던 함수가 간혹 프론트단과의 API 통신에서는 동작하지 않는 경우가 있어 당혹스럽지만 로그를 잘 찍어보고 어디서 동작하지 않는지를 파악하면 해결하기 수월할 거라 생각한다.
'Programming > node.js' 카테고리의 다른 글
node.js에서 mosquitto와 mqtt를 이용해서 파일 송수신하기 (0) | 2020.04.22 |
---|
댓글