如何将字符串从客户端传递给Node.js

时间:2016-02-02 20:49:17

标签: mysql json node.js express socket.io

在过去的几天里,我一直在寻找一种从客户端向Node发送字符串的方法,但没有运气。

目前,我有一个包含十几个输入和一个图像裁剪工具(fengyuanchen/cropper)的表单,用户可以上传照片,编辑(调整大小,裁剪等等)并保存dataURL(data:image / png; base64,iVBORw0KGg [...])在一个变量中。表格输入我没有问题,他们在数据库中更新就好了。我在传递包含dataURL的变量时遇到问题。

理想情况下,我希望只有一个用户提交的表单,1)使用输入字段更新数据库,2)将画布dataURL传递给节点,解码,将图像保存在服务器中,然后添加在MySQL中输入。或者使用AJAX单独提交裁剪的照片而不删除对输入字段的修改。

来自SO question: Save canvas data to file。所选答案假定您已经知道如何将该字符串从浏览器发布到您的Nodejs服务器。"这就是我坚持的部分。

我读过有关可能使用的内容: 1)隐藏的表单字段 - 这是可能的/高效的吗? 2)节点的模块加载器 3)Require.js 4)socket.emit(' image',dataURL)

我已将图像重新调整为1024x360,以便使用尽可能短的照片保持dataURL,直到我找到更好的解决方案。尽管如此,这些dataURL最终还是非常大(我见过一些大到700,000个字符)。我能通过JSON发送数据吗?

非常感谢任何帮助。

1 个答案:

答案 0 :(得分:0)

我建议您将base64转换回客户端上的文件,然后通过FormData上传。因为你必须在服务器上将其转换回来

将base64转换为file +追加到FormData:Convert Data URI to File then append to FormData

然后使用 multer 从FormData

获取文件