Node.js 和 JSON:从外部网站 api 检索信息

Posted

技术标签:

【中文标题】Node.js 和 JSON:从外部网站 api 检索信息【英文标题】:Node.js and JSON: retreiving info from external website api 【发布时间】:2021-09-07 12:40:31 【问题描述】:

此代码不起作用,因为它无法读取外部网站的地址

需要该 json 文件中的“结果”值。

是否有一个简单的解决方法可以从外部网站读取 json?

更好的是,如果您愿意提供更多帮助,我希望它每 5 分钟重新扫描一次该网站(或者您可以设置任何时间)

谢谢!


    const fs = require("fs");
    fs.readFile("", "utf8", (err, jsonString) => 
      if (err) 
        console.log("Error reading json", err);
        return;
      
      try 
        const useroutput = JSON.parse(jsonString);
        console.log("Customer address is:", useroutput.result); 
       catch (err) 
        console.log("Error parsing JSON string:", err);
      
    );
);


【问题讨论】:

如果你不介意添加依赖,那么使用node-fetch? 【参考方案1】:

HTTPS 模块是您正在寻找的,尽管有许多库可以使这些调用变得更容易。

const https = require('https');

const url = ''; // https://...
https.get(url, res => 
  // capture the response buffers
  const chunks = [];
  res.on('data', chunk => chunks.push(chunk));
  res.on('end', () => 
    const jsonString = Buffer.concat(chunks).toString('utf-8');
    // Handle as you will, JSON.parse(), etc.
  );
).on('error', error => 
  console.log(error);
);

【讨论】:

【参考方案2】:

setInterval 是您所需要的。 @lucasvw提供的复制示例

const https = require('https');
const url = ''; // https://...
setInterval(()=>
https.get(url, res => 
    // capture the response buffers
    const chunks = [];
    res.on('data', chunk => chunks.push(chunk));
    res.on('end', () => 
    const jsonString = Buffer.concat(chunks).toString('utf-8');
    // Handle as you will, JSON.parse(), etc.
    );
).on('error', error => 
    console.log(error);
);
,300000);

【讨论】:

以上是关于Node.js 和 JSON:从外部网站 api 检索信息的主要内容,如果未能解决你的问题,请参考以下文章

如何从 node.js 调用外部脚本/程序

从 JSON 文件创建简单的 Node.js API

如何从Node.js中的URL加载外部js脚本

如何在 Node JS 中打印对象

将消息从 Node.js 传递到外部系统?

如何从 Spotify Search API 获取数据并将其解析为 JSON? [在 node.js 中