繁体   English   中英

使用NodeJS(或PHP)将API数据保存到JSON文件

[英]Saving API data to JSON file with NodeJS (or PHP)

是否可以通过NodeJS使用XMLHttpRequest将数据从API保存到JSON文件?

该API数据应该显示在网站上,但是该API的运行速度越来越慢,因此,为了解决此问题,我将数据保存在服务器上,并每5分钟在网站上显示最新数据。

该API是公开的,如果有帮助,链接为http://lonobox.com/api/index.php?id=100002519

任何帮助是极大的赞赏。

嘿,我对节点服务器执行类似的操作,该节点服务器对我在工作中使用的JSON数据执行基本功能。 当要保存数据时,我只需将其发布到服务器即可。

但是,在读取数据时,我使用XMLHttpRequest来完成它,让我说明一下它是如何工作的,这应该为您提供一个良好的开端。

POST文件到服务器。

function processFile(e) {
    var file = e.target.result,results;


    if (file && file.length) {
        $.ajax({
          type: "POST",
          url: "http://localhost:8080/",
          data: {
            'data': file
        }
        }).done(function(msg) {
            appendText("Data Saved: " + msg);
        });
    }
}

在这里,您可以像这样使用XMLHttpRequest获取数据。

function getFile(){
    var rawFile = new XMLHttpRequest();
    rawFile.open("GET", "filename.json", false);
    rawFile.onreadystatechange = function ()
    {
        if(rawFile.readyState === 4)
        {
            if(rawFile.status === 200 || rawFile.status == 0)
            {
             var fileText = rawFile.responseText;
         }
     }
 }
 rawFile.send(null);
}

服务器代码

app.post('/', function(req, res) {
    var fileLoc = __dirname.split("\\").length > 1 ? __dirname + "\\public\\filename.json" : __dirname + "/public/filename.json";
    fs.writeFile(fileLoc, req.body.data, function(err) {
        if (err) {
            res.send('Something when wrong: ' + err);
        } else {
            res.send('Saved!');
        }
    })
  });

服务器端需要FS,我使用Express进行路由。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM