2017-11-11 15 views
0

ローカルJSONファイルにGETリクエストを明示的に作成したいと考えています。私はこのexpress.jsでローカルjsonファイルにGETリクエストを行う方法は?

var data = {}; 
app.get('/src/assets/data.json', (req, res) => { 
    console.log(res) 
    res.writeHead(200, { 
    'Content-type': 'application/json' 
    }); 

    res.end(JSON.stringify(data)); 
}); 

data.jsonこの

[{ 
    "param": "one", 
    "param": "two", 
    "param": "three" 
    }] 

のように見えてい私のserver.jsで

はまた、私はすぐにDOMがロードされると呼ばれているGET要求のための機能を作りました

getData() { 
    let xhr = new XMLHttpRequest(); 
    xhr.open('GET', '/src/assets/data.json', true); 
    xhr.onreadystatechange =() => { 
     if (xhr.readyState === XMLHttpRequest.DONE && xhr.status === 200) { 
     console.log(xhr) 
     } 
    }; 
    xhr.send(); 
    } 

私は応答が戻ってきましたが、空のオブジェクトです。私はそれが私のサーバーのファイルvar data = {};は空ですが、私はそれと何をすべきか分からないので推測している?

答えて

4

なぜあなたは単にあなたが

var data = {}; 
app.get('/src/assets/data.json', (req, res) => { 
    console.log(res) 

    /* Insted of doing all this */ 
    // res.writeHead(200, { 
    // 'Content-type': 'application/json' 
    // }); 
    // res.end(JSON.stringify(data)); 

    /* Just send the file */ 
    res.sendFile(path.join(__dirname, '/src/assets', 'data.json')); 
}); 

ために要求されたファイルを送信しかし、あなたは自分のコードとして実行したい場合は、あなたのコードに含めるために必要なものはありませんが

です
  1. data.jsonファイルをお読みください。
  2. ファイルからのすべてのデータをオブジェクトに入れます。つまり、data変数です。

ファイルを読むには、Node.jsの

同期のFile Systemモジュール含める必要があります。

var fs = require('fs'); /* Put it where other modules included */ 
var data = JSON.parse(fs.readFileSync('/src/assets/data.json', 'utf8')); /* Inside the get function */ 

非同期:

var fs = require('fs'); 
var data; 
fs.readFile('/src/assets/data.json', 'utf8', function (err, data) { 
    if (err) throw err; 
    data = JSON.parse(data); 
}); 

を適用する前に、公式ドキュメントを読んでくださいまた、Node File System上の他の例も自由にチェックしてください。

出典:Here

+0

ありがとうございました。 – Allan

+0

答えをアップしてください。 @allan – imvpn22

関連する問題