Решил сам, долго же я понять не мог в чем прикол...
А просто надо было сделать delay после записи csv файла.
var createCsvWriter = require('csv-writer').createObjectCsvWriter
// настройки csv writer
var csvWriter = createCsvWriter({
path: tagetFile,
header: [
{id: 'ClientId', title: 'ClientId'},
{id: 'Target', title: 'Target'},
{id: 'DateTime', title: 'DateTime'},
{id: 'Price', title: 'Price'},
{id: 'Currency', title: 'Currency'},
]
});
// данные для файла
var yandexData = [
{
ClientId: data.yaId,
Target: data.yaTarget,
DateTime: targetDate,
Price: data.billSum,
Currency: 'RUB'
},
];
// записываем файл
csvWriter.writeRecords(yandexData)
// ВОТ тут как раз нужен delay в 1-3 сек.
await delay(3500);
var request = require('request');
var fs = require('fs');
var options = {
'method': 'POST',
'url': 'https://api-metrika.yandex.net/management/v1/counter/99999999/offline_conversions/upload?client_id_type=CLIENT_ID',
'headers': {
'Authorization': 'Bearer AQAAAAAF0DAAC3Q40j9_TDsnhNZ4sv6CusA',
'Cookie': 'JSESSIONID=node0855nv0504w0qvdvb3z0zqfat2243678.node0'
},
formData: {
'file': {
'value': fs.createReadStream('/patch/to/file/PTgt-zouHsE.csv'),
'options': {
'filename': 'PTgt-zouHsE.csv',
'contentType': null
}
}
}
};
request(options, function (error, response) {
if (error) throw new Error(error);
console.log(response.body);
});
функция delay
function delay(timeout) {
return new Promise((resolve) => {
setTimeout(resolve, timeout);
});
}