Запуск почтового запроса с узлом, добавляющим параметры и заголовки, получая pointernullexception

Вот код в server.js

const https = require('https')
const http = require("http");
const fs = require('fs');

const fileUrl = new URL('file:///Users/someone.computer/Desktop/sampleFile.csv');

const post_data = fs.readFileSync(fileUrl);

const options = {
  host: 'api.thomsonreuters.com',
  // port: 443,
  path: '/permid/match/file',
  method: 'POST',
  headers: {
    'x-ag-access-token': 'myToken',
    'x-openmatch-numberOfMatchesPerRecord': 1,
    'x-openmatch-dataType': 'Organization',
    'Content-Type': 'multipart/form-data'
  }
}

const req = https.request(options, (res) => {
  var str = '';
  console.info(res)
  console.info(`statusCode: ${res.statusCode}`)
  res.on('data', function (chunk) {
    str += chunk;
    console.info("this is chunk = " + chunk)
  });
  res.on("end", function () {
    console.info("this is str = " + str)
  })
})

req.write(post_data);
req.end();

Мне нужно использовать CSV-файл и запустить его через permid.org и сопоставить мои локальные CSV-файлы, содержащие данные, которые нужно сопоставить, используя их функции сопоставления файлов API. В их документы говорится, что мне нужно включить параметры и заголовки, как я включил в объект ниже под названием options. Чтобы прочитать файл, я использую fs npm package

когда я бегу node server.js я падаю ниже в терминале

statusCode: 500
this is chunk = {"error": {"status": {
    "code": "500",
    "errorCode": "Server Error",
    "errorDescription": "java.lang.NullPointerException"
}}}
this is str = {"error": {"status": {
    "code": "500",
    "errorCode": "Server Error",
    "errorDescription": "java.lang.NullPointerException"
}}}

Подскажите, пожалуйста, что я делаю не так - заранее спасибо!

Вы используете запрос POST и устанавливаете тип контента; оба подразумевают, что вы намереваетесь отправить данные, но вы не отправляете никаких данных с запросом?

Randy Casburn 08.03.2019 22:14

я отправлял этот CSV-файл, не так ли? Вы можете убедиться с моим кодом? Можете ли вы указать, почему я не отправляю данные? Я думал, что отправляю файл csv

Gel 08.03.2019 22:15

или, может быть, мой код неявно отправляет его по запросу? можно поподробнее пожалуйста-спасибо большое

Gel 08.03.2019 22:16

Вы создаете переменную для хранения содержимого файла, но затем ничего с ней не делаете. Вам нужно установить для свойства options.data значение post_data

Randy Casburn 08.03.2019 22:17

@RandyCasburn Я думаю, вы не замечаете очередь req.write(post_data);...

Patrick Roberts 08.03.2019 22:18

это должно быть названо данными? это свойство требуется в объекте параметров?

Gel 08.03.2019 22:18

@GelSisaed либо body, либо data... посмотрите на API модуля https и посмотрите, что он ожидает

Isaac Vidrine 08.03.2019 22:20

@PatrickRoberts - Неважно - я действительно запутался в заявлении req.write().

Randy Casburn 08.03.2019 22:21

выдает ту же ошибку

Gel 08.03.2019 22:23
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
0
9
25
0

Другие вопросы по теме