21 lines
533 B
JavaScript
21 lines
533 B
JavaScript
function asyncHandler (handler) {
|
|
return (req, res, next) => {
|
|
Promise.resolve(handler(req, res, next)).catch((error) => {
|
|
console.error('[asyncHandler]', error)
|
|
|
|
if (res.headersSent) {
|
|
return next(error)
|
|
}
|
|
|
|
const status = error?.status || 500
|
|
return res.status(status).json({
|
|
message: error?.userMessage || 'خطای سرور',
|
|
en_message: error?.message || 'internal_error',
|
|
})
|
|
})
|
|
}
|
|
}
|
|
|
|
module.exports = asyncHandler
|
|
module.exports.asyncHandler = asyncHandler
|