一直以为后台只要返回200-299之间的状态码就没问题,就是这个错误认知,花了三个小时终于想到解决办法
附上axios 地址 axios中文文档|axios中文网 | axios (axios-js.com)
前面一直想着后台能接收处理请求,肯定不是后台问题,一直花时间配置前端请求指令,以及设置响应拦截器查看情况。突然想到其实是自己在后台设置了响应状态码就是204
router.get('/getGoods', async (ctx, next) => { try { let SearchLoststatus = 11; let SearchLoststatusMessage = '' let SearchFoundstatus = 11; let SearchFoundstatusMessage = '' let LostMessage = {} //wu_dehong.`lost_list` let FoundMessage = {} //wu_dehong.`found_list` await new Promise((resolve, reject) => { pool.query('select * from wu_dehong.`lost_list` where isdelete=0;', (err, result) => { if (err) { SearchLoststatus = 500; SearchLoststatusMessage = '数据库查询 失物 信息失败' console.log('数据库查询失物信息失败') reject() return }if (result.length == 0) {//错误演示,改为100,成功运行返回响应体 SearchLoststatus = 200; SearchLoststatusMessage = '数据库中未删除的失物信息为空' console.log('数据库中未删除的失物信息为空')
} else {//错误演示,改为100,成功运行返回响应体 SearchLoststatus = 201; SearchLoststatusMessage = '查询未删除的失物信息 成 功' // console.log(result)
LostMessage = { ...result }
} resolve() }) }) /* await new Promise((resolve, reject) => { if (Object.getOwnPropertyNames(LostMessage).length == 0) { reject() return } resolve() for (let key in LostMessage) { fs.readFileSync(`${LostMessage[key].img}`, 'utf8', function (err, result) { if (err) { return console.log('读取失物图片信息失败!', err) } if (result) { LostMessage[key].img = result } }) }
}) */
await new Promise((resolve, reject) => { pool.query('SELECT * FROM wu_dehong.found_list where isdelete=0;', (err, result) => { if (err) {//错误演示,改为100,成功运行返回响应体 SearchFoundstatus = 0; SearchFoundstatusMessage = '数据库查询 招领 信息失败' console.log('数据库查询 招领 信息失败') reject() return }
if (result.length == 0) { SearchFoundstatus = 1 SearchFoundstatusMessage = '数据库中未删除的招领信息为空' console.log('数据库中未删除的招领信息为空') } else {//错误演示,改为100,成功运行返回响应体 SearchFoundstatus = 3 SearchFoundstatusMessage = '查询未删除的招领信息 成 功' // console.log(result) FoundMessage = { ...result } } resolve() }) }) /* await new Promise((resolve, reject) => { if (Object.getOwnPropertyNames(FoundMessage).length == 0) { reject() return } resolve() for (let key in FoundMessage) { fs.readFileSync(`${FoundMessage[key].img}`, 'utf8', function (err, result) { if (err) { return console.log('读取招领图片信息失败', err) } if (result) { FoundMessage[key].img = result } }) }
}) */ //我说为什么总是返回204,res.data为undefind,排查下来原来是自己挖坑
ctx.response.status = SearchLoststatus + SearchFoundstatus ctx.response.statusMessage = SearchLoststatusMessage + '————' + SearchFoundstatusMessage
ctx.response.body = { LostMessage, FoundMessage } console.log(ctx.response.body) // Object.getOwnPropertyNames(obj).length==0
} catch (error) { console.log(error, '初始化搜索物品信息GET请求失败') } }) 标签:axios,console,log,err,res,resolve,let,result,204 From: https://www.cnblogs.com/zibai/p/17295005.html