2017-12-20 20 views
0

問題 ノードでスピンアップされたjavascriptファイルにローカルJSONファイルをロードできません。.jsファイルにローカル.JSONファイルをロードする方法

詳細

質問は単純ですが、私は、ブラウザ内のJavaScriptファイルを提供しておりません。私は、ロジックを持っているのJavaScriptファイルを持って、私は、その後でそれをスピンアップ:

node main.js 

私はいくつかのソリューションをググ、彼らはjQueryのかのXMLHttpRequestを使用することをお勧めしますが、彼らは私が実際に関連した問題に実行しているように見えますこれはブラウザでは提供しません。

プロジェクトの背景

私は、IR温度センサからデータを取得するためにラズベリーPIを使用しています。私はPythonを使用して電圧を計算し、摂氏に変換し、それをJSONファイルとしてエクスポートします。私はこのファイルをjavascriptファイルに読み込んで、angle fireデータベースを設定し、このデータをプッシュします。

私は、これをプルダウンしてエンドデータをユーザーに表示するフロントエンドアプリケーションを持っています。

私はjQueryを使って行く場合:

オプション1

サンプル:

$.getJSON("test.json", function(json) { 
    console.log(json); // this will show the info it in firebug console 
}); 

エラー

$.getJSON is not a function even though I am requiring jQuery. 

オプション2

私は純粋なJavaで行く場合スクリプト、私は

function loadJSON(callback) { 

    var xobj = new XMLHttpRequest(); 
     xobj.overrideMimeType("application/json"); 
    xobj.open('GET', 'my_data.json', true); // Replace 'my_data' with the path to your file 
    xobj.onreadystatechange = function() { 
      if (xobj.readyState == 4 && xobj.status == "200") { 
      // Required use of an anonymous callback as .open will NOT return a value but simply returns undefined in asynchronous mode 
      callback(xobj.responseText); 
      } 
    }; 
    xobj.send(null); 
} 

サンプルを参照してくださいエラー

xobj.overrideMimeType is not a function 

TL/DR

どのように私はブラウザに読み込まれていないのJavaScriptファイルにローカルのJSONファイルをロードしますノードでスピンアップする代わりに、

node main.js 
+3

'const jsonData = require( './ test.json');' –

+0

何?この1行のコードを探して時間を費やしました。 * facepalm。どうもありがとうございました – Bromox

答えて

2

Node.jsはJSONファイルをrequireまで読み込むことができます。 filename.jsonは、JavaScriptのオブジェクトにfilename.json解析し、ファイルの場合、ファイル名が'./' or '/' or '../'

は、ほとんどの場合、あなたが望むものconst json = require('./test.json')test.jsonがそれを必要とするコードと同じディレクトリにあると仮定しているSTOP。requireがJSONをと解析するので、この例のjsonはJavaScriptオブジェクトです。

関連する問題