[英]Cannot set headers after they are sent to the client backend error
我創建了一個簡單的后端函數,它應該對從前端發送的日期進行不同的檢查。
async checkVacation(req: Request, res: Response) {
try {
let currentUser = req.user as User
let dates = this.getBodyDates(req.body)
if (dates.start == null || req.body.end == null ||this.beforeTodayCheck(dates.start.toString()) ==true ) {
res.status(400).send("Start and/or End date is invalid")
}
let vacationDays = await this.getDBVacationDay(dates.start, dates.end, currentUser.Id)
res.send(vacationDays)
} catch (err) {
console.error(err)
res.status(400).send(err)
}
}
所以基本上這個函數應該檢查給定的日期是否為空,以及給定的開始日期是否在今天之前。 一旦我提供了一些無效的日期,后端就會給我這些錯誤
錯誤 [ERR_HTTP_HEADERS_SENT]:將標頭發送到客戶端后無法設置標頭 UnhandledPromiseRejectionWarning:錯誤 [ERR_HTTP_HEADERS_SENT]:將標頭發送到客戶端后無法設置標頭
我不知道如何處理這個錯誤。 問候,獅子座
將其放入“答案”而不是評論中。 正如 Ricky Mo 所說,這是因為res.send()
的多次使用。
這可以通過將其更改為return res.send()
來避免,這將確保只有一個會被運行。
干杯。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.