Вход

Просмотр полной версии : Отправка Post запроса с nodejs


dfcz112
24.03.2018, 19:36
Всем привет. Мне нужно с nodejs отправить форму, которая содержит в себе файл, и настройки. Саму форму можно посмотреть на https://www.imgonline.com.ua/grid-square.php . Т.е. мне нужно отправить такую же форму только с nodejs
Я накопал модуль needle для отправки post запроса. А вот так через модуль form-data я определяю нужные мне поля

var form = new FormData();
form.append('uploadfile', fs.createReadStream('./files/temp.jpg'));
form.append('ef-set', 10);
form.append('ef-set-2', 10);
form.append('jpeg-quality', 100);

needle.post('https://www.imgonline.com.ua/grid-square-result.php', form, function (err, resp) {
console.log(resp);
});
Но в ответе получаю ошибку "указания настроек"

Audaxviator
24.03.2018, 20:55
var request = require('request');
var fs = require('fs');

var formData = {
'uploadfile': fs.createReadStream('file_ws.jpg'),
'ef-set': 10,
'ef-set-2': 10,
'jpeg-quality': 100
};

request.post({url:'https://www.imgonline.com.ua/grid-square-result.php', formData: formData}, function (err, resp, body) {
if (err) {
return console.error(err);
}
console.log(resp.statusCode + '\n');
console.log('body: ', body);
});

dfcz112
24.03.2018, 21:02
var request = require('request');
var fs = require('fs');

var formData = {
'uploadfile': fs.createReadStream('file_ws.jpg'),
'ef-set': 10,
'ef-set-2': 10,
'jpeg-quality': 100
};

request.post({url:'https://www.imgonline.com.ua/grid-square-result.php', formData: formData}, function (err, resp, body) {
if (err) {
return console.error(err);
}
console.log(resp.statusCode + '\n');
console.log('body: ', body);
});

так всё падает с ошибкой C:\nodejs\node_modules\form-data\lib\form_data.js:226
} else if (options.filename || value.name || value.path) {
^

TypeError: Cannot read property 'name' of null
at FormData._getContentDisposition (C:\nodejs\node_modules\form-data\lib\form_data.js:226:40)

dfcz112
24.03.2018, 21:04
А не, всё заработало! Это я не туда посмотрел. Спасибо за помощь!