javascript - 尝试附加附件通过 request.post 发送时,表单数据库抛出无法读取 null 属性的错误

标签 javascript node.js request form-data

当我尝试使用 form-data 为附件创建 request.post 时,出现以下错误。该错误来自表单数据库。

var filename = options.filename || value.name || value.path;
                                          ^
TypeError: Cannot read property 'name' of null

这就是我的表单构建和附加的样子。我基本上是附加一个 JSON Web token 和一个图像文件。

var formData = new FormData();
formData.append('jwt', jwt);

var imgToAttach = fs.createReadStream(path.join(__dirname, 'abc.jpg'));
formData.append('attachmentA', imgToAttach);

sendRequest(formData);

sendRequest 函数如下所示。

    function sendRequest(formData) {
      var reqOptions = {
        url: options.host, 
        formData: formData,
        headers: {
          'Content-Type': 'application/x-www-form-urlencoded'
        }
      };
      request.post(reqOptions, function (err, resp) {...}

我已经尝试解决这个问题有一段时间了,但没有任何效果。非常感谢任何帮助。

最佳答案

由于某种原因,请求模块无法从表单数据中获取名称

试试这个:

const formData = {
    attachmentA: {
      value: imgToAttach,
      options: {
        filename: "abc",
        contentType: "jpg"
      }
    }
};

关于javascript - 尝试附加附件通过 request.post 发送时,表单数据库抛出无法读取 null 属性的错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44597174/

相关文章:

javascript - 在单个位置显示循环结果

javascript - AWS S3 - CORS 选项预检在使用 VersionId 删除期间抛出 400 错误请求

javascript - 如何关闭 webpack linting

java - 使用 Jetty 和 Web 服务器访问互联网。客户端-服务器通信 2台机器,计算机,java

javascript - tinynav.js 不适用于 ie8

javascript - Node.js 'require' 自动执行哪些模块?

javascript - TypeScript:将字符串转换为对象

java - RoboSpice:如何在 SpiceRequest 中触发 RequestListener.onRequestFailure 方法

java - @Pathvariable 到 classDTO

javascript - 通过ObjectID express js查找用户