欢迎!从2017年开始,将慢慢的不在xmind上写总结了,全部转到博客中!这里将不再随便写写,将继承在xmind的精神,继续前行!!!

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) 执行了。竟然没给前台返回内容!!!还需要在底部再返一次,有点奇怪!!!

posted @ 2019-04-18 18:33  拐进web的奋斗者  阅读(476)  评论(0编辑  收藏  举报