簡體   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