如何在 promisify 请求模块后正确使用 putAsync

How to properly use putAsync after promisify request module

我在这里和那里进行了搜索,但最终没有找到关于蓝鸟承诺请求的 putAsync 方法。

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);
});

以上是我程序中的代码片段。而且它不发送放置请求。使用 postAsync 时,如果会成功发送 post 请求。

谁能帮忙解释一下为什么?

我已经找到putAsync 代码片段中错误的部分。我应该使用 json 而不是 body 作为有效载荷的键。并且有效载荷不需要被字符串化。 这是经证明有效的新代码片段。

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 除了它们的方法类型之外还有这样的区别?