Вот код в 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"
}}}
Подскажите, пожалуйста, что я делаю не так - заранее спасибо!
я отправлял этот CSV-файл, не так ли? Вы можете убедиться с моим кодом? Можете ли вы указать, почему я не отправляю данные? Я думал, что отправляю файл csv
или, может быть, мой код неявно отправляет его по запросу? можно поподробнее пожалуйста-спасибо большое
Вы создаете переменную для хранения содержимого файла, но затем ничего с ней не делаете. Вам нужно установить для свойства options.data значение post_data
@RandyCasburn Я думаю, вы не замечаете очередь req.write(post_data);...
это должно быть названо данными? это свойство требуется в объекте параметров?
@GelSisaed либо body, либо data... посмотрите на API модуля https и посмотрите, что он ожидает
@PatrickRoberts - Неважно - я действительно запутался в заявлении req.write().
выдает ту же ошибку



![Безумие обратных вызовов в javascript [JS]](https://i.imgur.com/WsjO6zJb.png)


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