前提・実現したいこと
jsonファイルを読み込む。
発生している問題・エラーメッセージ
Chromeで127.0.0.1:8000/apiにアクセスしてもjsonファイルを読み込みません。またデベロッパーツールで確認したところ、res.writeHead
部分が反映されず、content-typeが設定できていないようです。res.writeHead(200, {'Content-type': 'application/json'}
と指定しているのですが。
別の箇所で'Content-type' : 'text/html'
と指定しているところ(404)はデベロッパーツールで確認すると、ちゃんと反映されています。
コードにどこか間違いがありますでしょうか。よろしくお願いいたします。
該当のソースコード
node.js
1 2const fs = require('fs'); 3const http = require('http'); 4const url = require('url'); 5 6 const server = http.createServer((req, res) => { 7 8 const pathName = req.url; 9 10 if(pathName === '/'){ 11 res.end('This is top page'); 12 }else if(pathName === '/api'){ 13 14 fs.readFile(`${__dirname}/data/data.json`, 'utf-8', (err, data)=>{ 15 const myData = JSON.parse(data); 16 res.writeHead(200, {'Content-type': 'application/json'}); 17 console.log(myData); 18 res.end(data); 19 }); 20 }else{ 21 res.writeHead(404, { 22 'Content-type' : 'text/html' 23 }); 24 res.end('<h1>Page not found</h1>'); 25 } 26 res.end('Hello!'); 27 }); 28 29 server.listen(8000, '127.0.0.1', () =>{ 30 console.log('Listening'); 31 });
試したこと
console.log(myData)はきちんと動いています。
Chrome、 Firefox, Safariで表示させてもだめでした。
プライベートモードやキャッシュの削除をしても変わりませんでした。
補足情報(FW/ツールのバージョンなど)
Node.js v10.16.0
mac OS Mojave
Google Chrome
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/07/10 19:16
2019/07/11 06:12 編集
2019/07/11 09:52
2019/07/11 10:04
2019/07/11 14:14
2019/07/11 15:03