SyntaxError: await is only valid in async function
서버 API 제작 중, 함수 내에서 await을 사용할 수 없다는 에러 메세지가 발생했다.
함수 앞에 async를 붙였는데도 말이다.
원인 및 해결방안
- 함수 앞에는 async 를 기재했지만 에러 발생
- 함수 내부의 콜백함수에서 await 문법을 사용하기 위해서는, 콜백함수 앞에도 async를 붙여줘야 함
// 에러 코드
module.exports = async (req, res) => { // 함수 앞에 async 기재
Job.findAll(
{where:{companyId:0}}
)
.then((data)=>{ // 아래 await 사용으로 인해 에러 발생
let jobInfo = await Job.findOne({where:{id:jobId}})
res.json({data: jobInfo})
})
}
// 해결 코드
module.exports = async (req, res) => {
Job.findAll(
{where:{companyId:0}}
)
.then(async (data)=>{ // 콜백함수 앞에도 async 붙여줘서 에러 해결
let jobInfo = await Job.findOne({where:{id:jobId}})
res.json({data: jobInfo})
})
}
반응형
'프로그래밍 > 알고리즘, 프로그래밍 언어' 카테고리의 다른 글
[JavaScript] 날짜 입력 시 요일을 리턴하는 함수 만들기 (0) | 2021.12.03 |
---|---|
비동기 데이터 처리 순서 : 콜백함수 vs Promise (0) | 2021.11.11 |
[알고리즘] BFS/DFS (JavaScript) (0) | 2021.09.30 |
[알고리즘] GCD를 이용하여 과자를 공평하게 분배하기 (0) | 2021.08.23 |
[알고리즘] 유클리드 호제법 : 최대공약수(GCD)와 최소공배수(LCM) (0) | 2021.08.23 |
댓글