【问题标题】:I want to use the result data of API to another JS variable by export我想通过导出将 API 的结果数据用于另一个 JS 变量
【发布时间】:2021-04-22 07:21:26
【问题描述】:

我是 nodejs 新手,谁能帮忙解决。下面是成功执行并在执行时显示控制台日志的代码。但是我不想在这里打印,而是在需要时导出并在另一个 js 文件中使用。

var https = require('https');

var spids={};
var headers = {
    'Content-Type': 'application/json',
    'x-ivx-api-key': '',
    'x-ivx-api-token': ''
};
var dataString = JSON.stringify({"sps":[0]});
var options = {
  'method': 'POST',
  'hostname': '',
  'path': '',
    headers: headers,
    body: dataString
  }
var req = https.request(options, function (res) {
  var chunks = [];
  res.on("data", function (chunk) {
    chunks.push(chunk);
  });
  res.on("end", function (chunk) {
    var body = Buffer.concat(chunks);
    str=body.toString();
    spids["array"] = JSON.parse(str).data.sps;
    spids["array"].forEach(function (a) {
      //console.log("Here a means:",a.organization.id);
      a.name = ['name', 'id'].map(function (k) { return a[k]; }).join(' ');
      a.organization.name = ['name', 'id'].map(function (k) { return a.organization[k]; }).join(' ');
    });
   
    spids = JSON.stringify(spids,null,"\t");
    console.log(spids);
   
  return spids;
  });
  res.on("error", function (error) {
    console.error(error);
  });
});
req.write(dataString);
req.end();
module.exports.req = req;

我想在单独的 js 文件中调用和使用它。

const spidlist = require('./jsons/getSPIDlist');   
var s= await spidlist.req;
console.log(s);

【问题讨论】:

    标签: node.js http-post


    【解决方案1】:

    您可以将代码重组为:

    var https = require("https");
    
    const getSpids = () => {
      var spids = {};
      var headers = {
        "Content-Type": "application/json",
        "x-ivx-api-key": "",
        "x-ivx-api-token": "",
      };
      var dataString = JSON.stringify({ sps: [0] });
      var options = {
        method: "POST",
        hostname: "",
        path: "",
        headers: headers,
        body: dataString,
      };
      return new Promise((resolve, reject) => {
        https.request(options, function (res) {
          var chunks = [];
          res.on("data", function (chunk) {
            chunks.push(chunk);
          });
          res.on("end", function (chunk) {
            var body = Buffer.concat(chunks);
            str = body.toString();
            spids["array"] = JSON.parse(str).data.sps;
            spids["array"].forEach(function (a) {
              //console.log("Here a means:",a.organization.id);
              a.name = ["name", "id"]
                .map(function (k) {
                  return a[k];
                })
                .join(" ");
              a.organization.name = ["name", "id"]
                .map(function (k) {
                  return a.organization[k];
                })
                .join(" ");
            });
    
            spids = JSON.stringify(spids, null, "\t");
            console.log(spids);
    
            resolve(spids)
          });
          res.on("error", function (error) {
            console.error(error);
            reject(error)
          });
        });
      });
    };
    
    module.exports = getSpids

    我还没有测试过这段代码,但你应该可以将它用作:

    const spidlist = require('./jsons/getSPIDlist');   
    var s= await spidlist();
    console.log(s);

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-02-03
      • 1970-01-01
      • 1970-01-01
      • 2021-05-10
      • 2018-09-16
      • 1970-01-01
      • 1970-01-01
      • 2011-11-15
      相关资源
      最近更新 更多