私はJSを初めて使用し、JSONファイルをサーバーに送信する必要があります(Express)。作成したWebアプリ全体でそのコンテンツを解析して使用できます。
私が今持っているものは次のとおりです。
いくつかのくだらないコード:
app.get( '/ search'、function(req、res){res.header( "Content-Type"、 'application/json'); res.send(JSON.stringify({/ data.json /})) ;});
上記のコードでは、ファイルをlocalhost:3000/searchに送信してJSONファイルを表示しようとしていますが、そのパスに移動したときに受け取るのは{}のみです。誰でも説明できますか?
どんな助けも大歓迎です。事前に感謝します。
乾杯、テオ
Data.jsonのスニペットの例:
[{
"name": "Il Brigante",
"rating": "5.0",
"match": "87",
"cuisine": "Italian",
"imageUrl": "/image-0.png"
}, {
"name": "Giardino Doro Ristorante",
"rating": "5.0",
"match": "87",
"cuisine": "Italian",
"imageUrl": "/image-1.png"
}]
変数として正しいファイルが必要であることを確認してから、その変数をres.sendに渡します!
const data = require('/path/to/data.json')
app.get('/search', function (req, res) {
res.header("Content-Type",'application/json');
res.send(JSON.stringify(data));
})
また、私の個人的な好みは res.json
ヘッダーを自動的に設定するため。
app.get('/search', function (req, res) {
res.json(data);
})
Res.send(...の代わりにres.json(data.json)を試してください.
別のオプションは、sendFile
を使用してコンテンツタイプヘッダーを設定することです。
app.get('/search', (req, res) => {
res.header("Content-Type",'application/json');
res.sendFile(path.join(__dirname, 'file_name.json'));
})
コードは、ファイルがJSコードと同じディレクトリにあると想定しています。これは answer の仕組みを説明しています。
最初にファイルを読み取り、次にjsonをクライアントに送信します。
fs.readFile('file_name.json', 'utf8', function (err, data) {
if (err) throw err;
obj = JSON.parse(data);
res.send(JSON.stringify(obj));
});