#javascript #node.js #api #server #backend
#javascript #node.js #API #сервер #серверная часть
Вопрос:
Вот код в 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.log(res)
console.log(`statusCode: ${res.statusCode}`)
res.on('data', function (chunk) {
str = chunk;
console.log("this is chunk = " chunk)
});
res.on("end", function () {
console.log("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"
}}}
Пожалуйста, сообщите, что я делаю неправильно — заранее спасибо!
Комментарии:
1. Вы используете POST-запрос и задаете content-type; оба подразумевают, что вы намерены отправлять данные, но вы не отправляете никаких данных с запросом?
2. я отправлял этот csv-файл, не так ли? можете ли вы убедиться с помощью моего кода? можете ли вы указать, почему я не отправляю данные? Я думал, что отправляю csv-файл
3. или, может быть, мой код неявно отправляет его по запросу? не могли бы вы уточнить, пожалуйста — большое спасибо
4. Вы создаете переменную для хранения содержимого файла, но затем ничего с ней не делаете. Вам нужно будет установить
options.data
свойство вpost_data
5. @RandyCasburn Я думаю, что вы пропускаете строку
req.write(post_data);
…