当我使用nodejs+express和body-parserpackage 在服务器端管理我的路由和数据时,我正在构建小项目。在前端,我有react一个安装了tinyMCE编辑器的简单应用程序。问题是当我选择要插入到文档中的图像时,编辑器将其base64设为 blob,当我尝试保存包括 base64 图像(通过向服务器执行 PUT 请求)在内的更改时,节点会吐出错误 500。一开始我认为这是一个问题使用 git 问题主题之一中建议的应用程序 json 标头。所以我切换到"Content-Type": "application/x-www-form-urlencoded"然而问题依然存在。然后我尝试了一些小图像16x16(以前是340x300)并且它起作用了......所以这可能意味着 POST 在数据部分中有太多字符,但我认为限制是1.9GB.这是一些服务器代码示例:app.use(bodyParser.urlencoded({ extended: true }));app.use(bodyParser.json());router.put("/:id", update);const update = (req, res, next) => { documentController.update(req, res, next);};const update = async (req, res, next) => { const { name } = req.body; const document = await Document.findOne({ name }); ... document .save() .then(document => { ... }) .catch(err => next(err));};和前端请求: request = async (url, method, data) => { try { let headers = { //"Content-Type": "application/json" "Content-Type": "application/x-www-form-urlencoded" }; let config = { headers, method }; if (data !== undefined) { //config["body"] = data; let query = ""; data = JSON.parse(data); for (let key in data) { query += encodeURIComponent(key) + "=" + encodeURIComponent(data[key]) + "&"; } query = query.slice(0, -1); config["body"] = query; } let response = await fetch(url, config).catch(error => console.log(error) ); let json = await response.json(); return json; } catch (error) { console.log(error); } };也许有人可以指出当图像较大时 PUT 请求有什么问题以及如何解决它。
添加回答
举报
0/150
提交
取消