我犯了一个错误 表达式预期.ts(1109) 错误
代码是 从“express”导入{NextFunction,请求,响应}; 从“../utils/errorHandler”导入ErrorHandler;
export const ErrorMiddleware = (err: any, req: 请求, res: 响应, next: NextFunction) => { err.statusCode = err.statusCode || 500 错误消息 = 错误消息 || “内部服务器错误”,
//wrong mongodb id
if(err.name === "CastError"){ // error occur in this line. if is marked with redline and error is expression expected
const message = `Resources not found with this id.. Invalid ${err.path}`
err = new ErrorHandler(message, 400)
}
//Duplicate key error
if(err.code === 11000) {
const message = `Duplicate ${Object.keys(err.keyValue)} Entered`
err = new ErrorHandler(message, 400)
}
//wrong jwt error
if(err.name === "jsonWebTokenError") {
const message = "Json web token is invalid, try again"
err = new ErrorHandler(message, 400)
}
//jwt expired error
if (err.name === "TokenExpiredError") {
const message = `Json web token expired. try again`
err = new ErrorHandler(message, 400)
}
res.status(err.statusCode).json({
success: false,
message: err.message
})
}
我尝试编写错误处理代码,但出现了 Expression Expected.ts(1109) 错误。如果用红线标记并且错误是表达式预期如何解决这个问题。这是任何版本的问题还是其他问题。我需要这个问题的解决方案
因为您在行尾使用逗号运算符
。,
sage = err.message || "Internal server error", // ❌
sage = err.message || "Internal server error"; // ✅
当您想要在需要单个表达式的位置包含多个表达式时,可以使用逗号运算符。该运算符最常见的用法是在
for
循环中提供多个更新程序。