#node.js #request #fs
#node.js #запрос #fs
Вопрос:
Можно ли прочитать файл с URL-адреса при выполнении запроса?
var options = {
'method': 'POST',
'url': 'http://172.19.64.193:8080/services/update?id=AkDwkm5bKo0ARvuvTaM7yj',
'headers': {
'Authorization': 'Bearer ' authToken
},
formData: {
'Filedata': {
'value': fs.createReadStream('image.jpg').pipe(request.put('https://www.worldcocoafoundation.org/wp/uploads/image.jpg')),
'options': {
'filename': '7798153810500.jpg',
'contentType': null
}
}
}
};
request(options, function (error, response) {
if (error) throw new Error(error);
console.log(response.body);
});
При выполнении createReadStream с помощью pipe() он выдает ошибку:
TypeError: request.put is not a function
Комментарии:
1. Откуда
request
берется? Можете ли вы показать код, который определяет эту переменную? Похоже, что, возможно, вы случайно переопределилиrequest
переменную чем-то, что не является модулем NPM с тем же именем, и, следовательно, нет никакого.put()
метода, потому что этаrequest
переменная не являетсяrequest
модулем из NPM, а чем-то другим.2. Куда вы пошли? Пожалуйста, не просто публикуйте и исчезайте. Мы не сможем вам помочь, если вы это сделаете.
3. Да, запрос был переопределен. Но теперь я получаю сообщение об ошибке: Ошибка: ENOENT: нет такого файла или каталога, открыть ‘image.jpg ‘
4. Если вы говорите, что это
fs.createReadStream('image.jpg')
генерирует ENOENT, то это говорит само за себя, чтоimage.jpg
не найдено в текущем каталоге. Возможно, ему нужен правильный путь? Или ваш код еще не закончил его размещение?5. Разве он не считывается с URL-адреса, а затем загружается?
Ответ №1:
Из полученной ошибки выясняется, что request
символ переопределяется каким-то другим определением и, следовательно, не является request
библиотекой, которую вы ожидаете.
Вам нужно будет изменить имя параметра переменной / функции, которое переопределяет его, чтобы они не конфликтовали.