Nodejs 请求补丁

问题描述 投票:0回答:2

我目前正在尝试在我的 Node.js 应用程序中实现补丁请求。但我似乎无法让它发挥作用。我已确保我的数据结构是正确的。

我尝试了一些不同的事情,例如:返回我的请求。补丁和承诺,但似乎没有发生任何事情。

var request = require('request');
exports.patchOwner = function (options) {
    var urlEncodedParams = encodeURI(options.nodeId);
    request.patch(url + '/owner/owners/' + urlEncodedParams, JSON.stringify(options.body), function (err, res, body) {
            //body is empty
    });

}

node.js promise request patch
2个回答
0
投票

我会尝试这样的事情:

var fullUrl = url + '/owner/owners/' + encodeURI(options.nodeId);
var body = JSON.stringify(options.body);
request.patch({ url: fullUrl, body: body }, function (err, res, body) {
  // do your thing
})

-1
投票

您可以使用快递来满足

patch
请求

服务器.js

app.patch("/data/:id/:patch", (q, r) => {
    let id=q.params.id;
    let id=q.params.patch;

    //your logic

    r.send({ res: "*PATCHED*" });
});

客户端.js

let ajax = (type, url, data, callback) => {
    let xhr = new XMLHttpRequest();
    xhr.open(/* GET */type, url, true/* ASYNC */);
    xhr.onload = () => callback(xhr.status === 200 ? JSON.parse(xhr.response).res : xhr.status);
    xhr.setRequestHeader('Content-Type', 'application/json');

    if (type === "POST")
        xhr.send(JSON.stringify(data));
    else
        xhr.send();//PUT - PATCH - DELETE - GET
}

用法

ajax('PATCH', '/data/1/something_to_patch', null, (res)=>{alert(res)});

GET
PUT
DELETE
的逻辑相同。

但是对于

POST

服务器.js

app.post("/data", (q, r) => {
    let body_data = JSON.stringify(q.body);
    r.send({ res: "*POST: " + body_data + "*" });
});

客户;用js发布数据:

<script>
    let data = {
        "id": 1,
        "name": "AJAX_POST"
    }

    ajax('POST', '/data', data, (res)=>{alert(res)});
</script>

客户;邮寄表格:

<form action="/data" method="POST">
    <input name="id" type="hidden" value="2" />
    <input name="name" type="hidden" value="FORM_POST" />
    <input type="submit" value="FORM_POST" />
</form>
© www.soinside.com 2019 - 2024. All rights reserved.