【问题标题】:The "string" argument must be one of type string, Buffer, or ArrayBuffer. Received type object“string”参数必须是 string、Buffer 或 ArrayBuffer 类型之一。接收到的类型对象
【发布时间】:2020-12-09 12:40:00
【问题描述】:

在给定代码中出现此错误。我在文件上传时调用这个方法,它会捕获块。

ERR: TypeError [ERR_INVALID_ARG_TYPE]: The "string" argument must be one of type string, Buffer, or ArrayBuffer. Received type object

        try{
          request
            .post(url)
            .set(postHeaders)
            .send(postData)
            .end(function (err, response) {
                if(err) {
                    console.log(err);
                    res.send(errorJson);
                    return;
                }
                res.set(response.header);
                res.send(response.text);
            });
          } catch(err){
              console.log("error" , err)
          } 

标题是

'content-type': 'multipart/form-data;'

【问题讨论】:

    标签: javascript node.js express


    【解决方案1】:

    从外观上看,您正在使用superagent 执行上传。由于您打算进行multipart/form-data 上传,因此您不能使用.send()。来自docs

    多部分请求 SuperAgent 也非常适合构建多部分 它为其提供方法 .attach() 和 .field() 的请求。

    当你使用 .field() 或 .attach() 时,你不能使用 .send() 并且你必须 未设置 Content-Type(将为您设置正确的类型)

    因此您需要将代码更改为:

    request
           .post(url)            
           .field(<setYourFieldDataHere>) // or use .attach() if you want to upload files
           //
    

    【讨论】:

      猜你喜欢
      • 2020-11-02
      • 2020-03-29
      • 2021-12-07
      • 1970-01-01
      • 1970-01-01
      • 2019-10-13
      • 2020-09-04
      • 1970-01-01
      相关资源
      最近更新 更多