import { Response } from 'express' const formatMsg = (res: Response, msg?: string): void => { let status = 1 let formatMsg = msg || '出错啦' if (msg?.includes('connect ECONNREFUSED 127.0.0.1:6666')) { status = 1001 formatMsg = '连接企微失败' } if (msg?.includes('没有找到企业微信进程或企业微信没有启动')) { status = 1001 formatMsg = '没有找到企业微信进程或企业微信没有启动' } res.json({ success: status, msg: formatMsg }) } export default { format: (res: Response, data: unknown, msg?: string): void => { res.json({ success: 0, data, msg: msg || '请求成功' }) }, error: (res: Response, error: Response): void => { // console.log('format-error', error) if (typeof error == 'string' || (error as Error).message) { const errorMessage = typeof error === 'string' ? error : (error as Error).message formatMsg(res, errorMessage) // res.status(status).json(error) } else { // resFormatter.error(res, error) // res.status(500).json({ success: 1, msg: error.message }) // 将错误信息转换为响应对象 if (error.response) { // 存在 error.response 属性,这表示服务器已经响应,但状态码不在 2xx 范围内。 const status = error.response.status const errorMessage = error.response.data res.status(status).json({ success: false, msg: errorMessage }) res.status(status).json(error) } else if (error.request) { // 有 error.request,表示请求已发送,但未收到响应。 // res.status(500).json({ success: false, msg: 'No response received from the server.' }) res.status(500).json({ success: 1, msg: error.message }) } else { // 其他类型的错误,如网络问题、请求配置错误等 res.status(500).json({ success: 1, msg: error.message }) } } } }