Как правильно использовать putAsync после promisify модуль запроса


Я искал здесь и там и в конечном итоге не нашел ничего относительно метода putAsync promisified request by bluebird.

var request = require('request');
var Promise = require('bluebird');
Promise.promisifyAll(require("request"));

request.putAsync({
    uri: buApiUrl,
    headers: {
        'content-type': 'application/json'
    },
    body: JSON.stringify({
        name: BU,
        workstations: formattedWorkStaions[BU]
    })
}).spread(function (response, body) {
    debugHelper.log(body);
}).catch(function (err) {
    debugHelper.error(err);
});

Выше приведен фрагмент кода, который находится в моей программе. И он не посылает запрос put. При использовании postAsync, if успешно отправит запрос post.

Может ли кто-нибудь помочь объяснить, почему?

1 2

1 ответ:

Я уже нашел ту часть, где ошибка в фрагменте кода putAsync. Я должен использовать JSON не тело, как ключ полезной нагрузки. И полезная нагрузка не нуждается в стрингировании. Вот новый фрагмент кода, доказавший свою работоспособность.

var request = require('request');
var Promise = require('bluebird');
Promise.promisifyAll(require("request"));

request.putAsync({
    uri: buApiUrl,
    headers: {
        'content-type': 'application/json'
    },
    json: {
        name: BU,
        workstations: formattedWorkStaions[BU]
    }
}).spread(function (response, body) {
    debugHelper.log(body);
}).catch(function (err) {
    debugHelper.error(err);
});
Это довольно сложно и приводит к моему второму вопросу. Почему существует такая разница между post и put, кроме их типа метода?