首页 > 解决方案 > 使用本机 HTTPS 请求修补 Node.js 中的数据

问题描述

我正在为 Node.js 中的 https 请求分配作业。作业要求使用本机 https 模块来修补数据。另外,我们要更新的数据可以在js文件之后输入,比如node xxx.js "update something"。问题是在打补丁时,更新已上传,但旧数据未更新。因此,它导致新旧数据同时存在。谢谢!

const https = require('https');

const args = process.argv;
const act = args[2];
const update = args[3]

const options = {
    hostname: 'reqres.in',
    port: 443,
    path: `/api/users/${act}`,
    method: 'PATCH',
    headers: {
      "Content-Type": 'application/x-www-form-urlencoded'
    }
}

const req = https.request(options.options_patch, res => {
    let data = '';
    console.log('Status: ', res.statusCode)
    console.log('Headers: ', JSON.stringify(res.headers))
    res.setEncoding('utf8');
    res.on('data', chunk => {
      data += chunk;
    });
    res.on('end', () => {
      console.log('Body: ', JSON.parse(data));
    })
  }).on('error', e => {
    console.error(e);
  })

  req.write(JSON.stringify(update));
  req.end();
}

标签: node.jshttpsrequestpatch

解决方案


const https = require('https');

const args = process.argv;
const act = args[2];
const update = args[3];

const options = {
    hostname: 'reqres.in',
    port: 443,
    path: `/api/users/${act}`,
    method: 'PATCH',
    headers: {
        "Content-Type": 'application/x-www-form-urlencoded'
    }
}

const req = https.request(options, res => {

    let data = '';

    console.log('Status: ', res.statusCode);
    console.log('Headers: ', JSON.stringify(res.headers));

    res.setEncoding('utf8');

    res.on('data', chunk => {
        data += chunk;
    });

    res.on('end', () => {
        console.log('Body: ', JSON.parse(data));
    });

}).on('error', e => {
    console.error(e);
});

req.write(update);
req.end();

node test.js path "data"

状态:200 标题:{"date":"Wed, 08 Jul 2020 12:59:16 GMT","content-type":"application/json; charset=utf-8","content-length":"50 ","connection":"close","set-cookie":["__cfduid=d76ab451f50acf77b2fe9da83cbff44521594213156; expires=Fri, 07-Aug-20 12:59:16 GMT; path=/; domain=.reqres.in; HttpOnly ; SameSite=Lax; Secure"],"x-powered-by":"Express","access-control-allow-origin":"*","etag":"W/"32-PB4zlwTjg/gFA9Skv/cu8Rzo1N4 "","via":"1.1 vegur","cf-cache-status":"DYNAMIC","cf-request-id":"03d01b5e6500000c1117955200000001","expect-ct":"max-age=604800, 报告-uri="https://report-uri.cloudflare。com/cdn-cgi/beacon/expect-ct"","server":"cloudflare","cf-ray":"5af9fb43d9af0c11-AMS"} 正文:{数据:'',updatedAt:'2020-07-08T12 :59:16.501Z' }

仅供参考:这也可以用curlor来完成wget


推荐阅读