koa 报错总结
记录一些实战的报错!不一定全是koa的
一:浏览器报 404错误!但服务器却能正常接收到参数并执行操作
代码实例:
//前台调用 upload(e){ var that = this ; var url = DocConfig.server+'/admin/base64upload'; var params = new URLSearchParams(); params.append('imgData ', this.img); that.axios.post(url, params) .then(function (response) { if (response.data.state === 'success' ) { //that.$message.success("加载成功"); console.log(response.data.data) }else{ that.$alert(response.data.msg); } }) } //后台接收 //上传图片 接收base64 内容 router.post('/base64upload', async(ctx, next) => { let imgData = ctx.request.body['imgData ']; // 构建图片名 var fileName = "hhhhh" + Date.now() + '.png'; // 构建图片路径 var filePath = 'public/uploads/' + fileName; // 过滤data:URL var base64Data = imgData.replace(/^data:image\/\w+;base64,/, ""); var dataBuffer = Buffer.from(base64Data, 'base64'); //写入文件 await fs.writeFile(filePath, dataBuffer, function(err) { if (err) { console.log(1) ctx.body = { state: 'false', msg: '文件写入失败' } } else { console.log(2) ctx.body = { state: 'success', msg: '文件写入成功' } } }) // ctx.body = { // state: 'success', // data: '文件写入成功' // } })
按照上面的代码,将后台底部输出部分给注释掉!前台爆了2个错!
一个是404 另一个是 Uncaught (in promise) ,如图
问题原因:
这个函数里面并没有返回结果给前端(你发送一个请求,后台没有回应你,导致前端不知道下一步怎么办),所以,不管是get请求还是
post请求,你后台起码得回应一下前端
控制台 console.log(2) 执行了。竟然没给前台返回内容!!!还需要在底部再返一次,有点奇怪!!!