前提・実現したいこと
書籍apiから検索結果を取得する。
検索単語を入力してボタンを押すと、コンソールログに検索結果のオブジェクトが表示される。
発生している問題・エラーメッセージ
SyntaxError: Unexpected end of JSON input at JSON.parse (<anonymous>) at IncomingMessage.<anonymous>
該当のソースコード
javascript
1'use strict' 2 3const express = require('express'); 4const https = require("https"); 5const bodyParser = require("body-parser"); 6 7const app = express(); 8 9app.use(express.static('public')); 10app.use(bodyParser.urlencoded({ extended: true })); 11 12app.get("/", function(req, res) { 13 res.sendFile(__dirname + "/public/index.html") 14}); 15 16app.post("/", function(req, res) { 17 const query = req.body.searchWord; 18 const url = `https://www.googleapis.com/books/v1/volumes?q=${query}` 19 20 https.get(url, function(response) { 21 console.log(response.statusCode); 22 23 response.on("data", function(data) { 24 const result = JSON.parse(data || "null"); 25 console.log(result); 26 }) 27 }) 28}) 29 30app.listen(3000, function() { 31 console.log("Server is running."); 32});
試したこと
ステータスコードを表示させると200が返ってくるのでデータ自体は取得できているはずなのですが、JSON.parseの部分で問題が生じているようです。
JSON.parse(data || "null")
と書き換えても解決しませんでした。
分かる方いらっしゃいましたらよろしくお願いいたします。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/06/25 21:59 編集