문제 인증 미들웨어를 만들고 사용하려고했다. 이렇게 정의해두고 서버를 시작하면 Route.get() requires a callback function but got a [object Undefined] 이런 에러가 뜬다. 에러를 해석해보면 Route.get()에는 콜백 함수가 필요하지만 [객체 정의되지 않음]. 이게 뭔소린지 이해하면서 코드를 봤더니 엄청난 실수를 했다. AuthController 객체를 가져와놓고 인스턴스 생성을 하지 않았다. 해결 인스턴스 생성후 생성한 인스턴스로 바꿔주었다. 해결완료!!
유닛 테스트 코드 오류 예시 설명 repositories 1. User Repository Unit Test 테스트하려는 테스트스위트 4가지가 정의 되어 있고 나머지는 통과가 됬는데 updateToken Method테스트에서 실패를 했다라는걸 간략하게 보여줌 2. User Repository Unit Test > updateToken Method 해당 테스트에서 에러가 난걸 강조해서 보여준다. 3. expect(received).toBe(expected) 둘을 서로 비교해주는 메서드인걸 주석으로 알려주며 아래의 예상값과 현재값이 담겨있다. Expected의 예상값은 "upload refreshToken" Received의 현재값은 {} 즉, 실패한 원인을 알려주고 어느 위치에서 에러가 낫는지도 친절하게 ..
P r o b l e m S3를 사용해서 이미지를 업로드하는 테스트를 하고 있었다. 해당 코드 로직을 다 짠뒤 인섬니아로 테스트를 하는데 this.client.send is not a function 이라는 에러메세지와 함께 에러가 생겼다. T r y 1. 버킷에 문제가 있나 싶어서 버킷을 뜯어봤다. • 구글링을 해보면서 버킷에 무슨 문제가 있는지 보니 AWS S3연결할때에 어떤 사람은 버킷을 생성한뒤 정책생성기로 정책을 생성한뒤 정책 편집기에 설정해 주는 방법을 사용했다. 자세히 알고 있진 않지만 그 과정이 퍼블릭액세스 차단 설정을 활성화하여 퍼블릭 액세스권한을 부여하지 않는 과정인데 처음 시작할때 모든 퍼블릭 액세스 차단을 했기 때문에 하지 않아도 되는것 같았다.(같은 맥락이니까) 버킷은 문제 없이 ..
문제 게시물의 댓글을 조회 하는 과정에서 프리즈마 에러가 떳다. 시도 위 처럼 게시물의 아이디를 못가져오는 것 같아서 받아오는 게시물을 문자열로 받아오나 싶어서 number로 변환을 시켜주었다. 똑같이 에러가뜬다.. 자세히 읽어보니 타입을 BigInt라고 설계했었던걸 알수가 있었다. 타입을 BigInt로 지정해주었다. SyntaxError가 발생하였다.. 다시 잘 읽어보니 req.param은 객체형태로 전달되는데 그 객체를 BigInt로 변환하려고 했기 때문에 발생한걸 알수 있었다. 해결 객체 자체의 값을 꺼내와서 변환해준뒤 실행해주었다. 값이 잘 나오는걸 확인할 수 있다.
문제발생 router.post("/sign-in", async (req, res) => { // 이메일과 비밀번호로 로그인 요청 const { email, password } = req.body; // 해당 이메일을 가지고 있는 유저가 있는지 검색 const user = await prisma.users.findFirst({ where: { email } }); // 없다면 존재하지 않는 이메일입니다. if (!user) { return res.status(401).json({ message: "존재하지 않는 이메일 입니다." }); // 이메일은 있지만사용자가 입력한 비밀번호와 암호화된 비밀번호가 일치하지 않는다면 에러문구와 함께 return } else if (!(await bcrypt.compare..
node.js로 amazon RDS를 VS CODE에 연결하기 위해 설정을 다하고 서버를 켰습니다. 서버를 열자 서버가 연결되었다는 문구가 떠서 다 연결이 됐구나 싶었는데 갑자기 node : events: 492 throw er; // Unhandled 'error' event 에러가 떳습니다. 그 밑에 에러 코드를 읽어 보면 연결이 Timedout이 됐나고 나옵니다. 설정한 코드와 비밀번호가 맞지 않나? 싶어서 다시 다 적어줬지만 그대로 나와서 뭐가 문제지 하면서 살피는 도중 Docker의 mysql포트번호와 로컬의 mysql의 포트번호가 같았을 때 충돌이 난 경험이 있어서 이번에 RDS만들 때 포트번호를 3306 기본 값으로 설정한게 아닌 3308로 설정한걸 깨닫고 mysql 연결설정해주는 곳에 포트..
자바스크립트에서 변수는 원시 값과 참조 값이 있습니다. 원시 값에는 string, number, bigint, boolean, undefined, symbol이 있습니다. 참조 값은 위 원시값을 제외한 나머지는 다 참조타입입니다.(배열, 객체, 함수가 대표적) 참조 타입은 변수에는 실제 데이터가 아닌 데이터가 저장된 메모리 위치(주소)를 할당받습니다. 예를 들어, 객체를 a 변수에 할당하고 나서 b 변수에 a를 복사하면, b는 a와 동일한 메모리 위치를 참조하게 됩니다. 따라서, a나 b 중 하나에서 객체 내부의 값을 수정하면, 다른 변수에도 동일한 메모리를 참조하는 관계이므로 수정 내용이 반영됩니다. 이러한 특성은 객체나 배열과 같은 참조 타입의 변수들이 가변적인(mutable) 특성을 가지게 됩니다...
정렬 알고리즘 데이터 사이에는 유사한 속성이나 일련의 순서가 있습니다. 그래서 많은 컴퓨팅 알고리즘에서는 처리중인 데이터를 특정 형태로 정렬할 때가 있습니다. 예를 들어 이진 탐색은 알고리즘을 수행하기 전에 데이터를 비교하도록 특정 순서로 배열을 정렬합니다. 데이터베이스는 쿼리를 실행하여 ㄷ특정 속성에 따라 항목을 정렬합니다. 즉, 데이터를 정렬하면 알고리즘이 중복 데이터를 빠르게 식별하거나 필요한 데이터를 매우 빠르게 찾을 수 있습니다. 버블정렬알고리즘 • 첫번째와 두번째, 두번째와 세번째, ... 마지막까지 비교하면서 교환하며 자료를 정렬하는 방식입니다. • 이 방식을 사용하면 가장큰 수는 첫 사이클에 배열의 맨 마지막에 위치하게 됩니다. • 이렇게 모든 사이클이 끝나면 오름차순으로 정렬되게 됩니다...