2017-12-14 18 views
0

XMLHttpRequestを使用してNodeJSを使用してAPIからJSONファイルにデータを保存する方法はありますか?NodeJS(またはPHP)を使用してJSONファイルにAPIデータを保存する

APIデータはWebサイトに表示されるはずですが、APIは徐々に遅くなるため、これを防ぐためにサーバーにデータを保存し、5分ごとに最新のデータを表示します。

APIが公開されている場合は、そのリンクはhttp://lonobox.com/api/index.php?id=100002519です。

ご協力いただきまして誠にありがとうございます。

+1

これは可能です。これまでに何を試しましたか? – rgthree

+0

cronジョブのセットアップ方法をお読みください – charlietfl

答えて

1

私は職場で使用するJSONデータの基本機能を実行するノードサーバーと同様のことを行います。データを保存する場合は、サーバーにPOSTします。

しかし、データの読み込みにはXMLHttpRequestを使用しています。どのように動作するのかを説明しておきましょう。

サーバーへのPOSTファイル。そう...

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); 
} 

Serverコード

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を使用ようにあなたは、XMLHttpRequestをしてデータを取得することができますここから

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); 
     }); 
    } 
} 

+0

ありがとう、私はこれを試してみます。私の目標は、JSONファイルが変更された場合でもAPIへのリクエストを2回以上行うことなく、新しいリクエストを送信することです。 私の現在の「マッチングデータ関数」はあまり良くありません。答えが得られるまで新しいリクエストを作成し続けますが、APIが応答するのに30秒以上かかるため、多くのリクエストを行うことになります。 – VirtusB

+0

あなたがどうやってやっていくか心配する必要はありません。あなたがあまりにも多くのリクエストをしているなら、あなたのコードのどこかでコールバックを使うことができるように聞こえます。あなたのコードが私にとってどのように機能するかを明確にすることはできますか? - JSONのAPIをリクエストしますか? - 現在保存されているJSONと相違点を比較しますか? - 変更された場合、新しいJSONを保存しますか? – SHolmes

関連する問題