Node.js - 使用 axios 调用 OCR space api

Node.js - Calling OCR space api using axios

我正在创建一个应用程序,它使用 ocr space api 从上传的图像中检索文本。 我使用 postman 测试了 api,还使用 ​​api 调用的请求库测试了 Node.js 的生成代码片段。由于不推荐使用请求模块,我想使用 axios 来执行我的 api 调用,但我仍然失败。到目前为止,这是我的编码。 为了处理 post 请求中的文件上传,我使用了表单数据模块。

const axios = require('axios');
const formData = require('form-data');
const form = new formData();

const stream = fs.createReadStream('path-to-my-file');
form.append('file', stream);
form.append('language', 'eng');
form.append('filetype', 'png');

let url = 'https://api.ocr.space/parse/image'
let options = {
    headers: {
        'apikey': 'my-api-key'
      }
};

axios.post(url, form, options)
      .then(function (response.data) {
          console.log(response);
      }).catch(function (error) {
          console.error(error);
    });

运行这段代码会导致以下错误:

OCRExitCode: 99,
  IsErroredOnProcessing: true,
  ErrorMessage: [
    "Parameter name '----------------------------218784067201800707615554\r\n" +
      "Content-Disposition: form-data; name' is invalid. Valid parameters: apikey,url,language,isoverlayrequired...

我哪里出错了?

我刚遇到同样的问题。我通过添加表单附带的 headers 来解决:

let options = {
    headers: {
        'apikey': 'my-api-key',
         ...form.getHeaders()
      }
};

希望您解决了,如果解决了,请分享答案。我正在找它!