将 base64 对象发送到 expressjs 服务器

Send base64 object to expressjs server

我从 canvas

得到了 base64 对象
var imageData = canvas.toDataURL('image/png');

然后我尝试通过 ajax:

将这个 base64 对象 (imageData) 发送到服务器
var _data = {};
// set test property:
_data.avatar = imageData;
console.log(_data);
// Make an Ajax request
$.post('./setup', _data, function(result) {
console.log('result', result);
});  

在我的 nodejs 服务器(只使用 express 中间件)中,我有一个简单的路由器来处理这个请求

router.post('/setup', function(req, res, next) {
    console.log('setup: data', req.body.data);
    console.log('setup: check', req.body.check);
    console.log('setup avatar: ', req.body.avatar);
    res.json({
    success:true
    });
});

实际上,它不起作用,我想知道为什么无法发送base64对象。 在另一种情况下,我的带有文本的 json 对象可以正常发送到服务器.. 感谢您提供将 base64 对象发送到 expressjs 服务器的帮助和解决方案

查看有关如何设置允许的正文大小的答案:

  • Error: request entity too large

尝试增加正文解析器可以处理的数据限制,例如:

app.use(bodyParser.json({limit: '50mb'}));
app.use(bodyParser.urlencoded({limit: '50mb', extended: true}));