如何将数组缓冲区数据和字符串/ json一起发送到NodeJS服务器

问题描述 投票:2回答:2

我需要在一个请求中将客户端页面的图像数据(作为数组缓冲区读取)以及页面生成的其他字符串/ json信息一起发送到NodeJS服务器。我需要在一个请求中处理这两部分,因为服务器对图像的进一步处理取决于所发送的字符串/ json。通过客户端发送那些邮件然后通过服务器解析它们以使其符合那些条件的方法有哪些?

javascript node.js arraybuffer
2个回答
2
投票

您正在寻找的是使用FormData的多部分请求。

FormData可用作获取中的body,并支持Blob。一个例子是这样的:

var binary = new Uint8Array(2)
binary[0] = 65
binary[1] = 66

var fd = new FormData()
fd.append('json_data', JSON.stringify({a: 1, b: 2}))
fd.append('binary_data', new Blob([binary.buffer]))

fetch('https://example.com/receive', {
  method: 'POST',
  body: fd
}).then(console.log)

Note:如果您在服务器上使用express,请注意bodyparser可以not处理多部分实体!

bodyparser的替代方法是multerconnect-busboymultiparty


0
投票

如果使用express.js,则可以使用multer

从他们的文档:

var express = require('express')
var multer  = require('multer')
var upload = multer({ dest: 'uploads/' })

var app = express()

app.post('/profile', upload.single('avatar'), function (req, res, next) {
  // req.file is the `avatar` file
  // req.body will hold the text fields, if there were any
})
© www.soinside.com 2019 - 2024. All rights reserved.