在前端页面上传图像时,将图像转为base64字符串传给后端,结果前端报错说后端有问题,响应500信息回来。查了下后端,发现报错’res.cc is not a function‘。
网上找了原因,只找到有人说中间件的位置放错这个原因,结果我的还是报错。最后换了别的图片,发现产生其他错误,于是想到可能图片过大,base64字符串过长导致后端无法处理。
解决方法
将app.use(express.json());
改为app.use(express.json({ limit: '5mb' }));
因为默认不传参时只能处理较小的json数据,此时可以将limit改大点。
另一个问题
将base64字符串保存到数据库时,出现 ER_DATA_TOO_LONG: Data too long for column ‘user_pic’ at row 1 的错误信息,意思为该字段的信息太大,需要将该列的字段从text改为longtext,问题解决。