-
Notifications
You must be signed in to change notification settings - Fork 12
/
JEBookAPI.js
99 lines (89 loc) · 2.91 KB
/
JEBookAPI.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
import https from "https";
// import mysql from "mysql";
import fs from "fs";
// const url = "https://jsonplaceholder.typicode.com/todos";
// // JSON 데이터를 반환하는 외부 API URL
// const xhr = new XMLHttpRequest();
// // API에 GET 요청 보내기
// xhr.open("GET", url);
// xhr.send();
// xhr.onload = function () {
// // 응답으로 받은 JSON 데이터 파싱
// const data = JSON.parse(xhr.responseText);
// // 파싱한 데이터를 콘솔에 출력
// data.forEach((item) => {
// console.log(item);
// });
// };
// API에 GET 요청 보내기
// fetch(url)
// .then((response) => response.json())
// .then((data) => {
// // 파싱한 데이터를 콘솔에 출력
// data.forEach((item) => {
// console.log(item);
// });
// });
// Google Books API에서 책 정보와 표지 이미지를 가져오는 함수
function getBookInfo(title) {
const url = `https://www.googleapis.com/books/v1/volumes?q=${title}`; // API URL
https.get(url, (response) => {
let data = "";
// API 응답 데이터 수신 시
response.on("data", (chunk) => {
data += chunk;
//console.log(data);
});
response.on("end", () => {
const bookInfo = JSON.parse(data).items[0].volumeInfo; // 첫 번째 검색 결과에서 책 정보 가져오기
// console.log(bookInfo);
const thumbnailUrl = bookInfo.imageLinks.thumbnail; // 책 정보에서 표지 이미지 URL 가져오기
console.log(thumbnailUrl);
});
});
}
//data 안의 title 입력
getBookInfo("The Hitchhiker's Guide to the Galaxy");
getBookInfo("Sustainable Development and Planning VIII");
const imageUrl =
"https://books.google.com/books/content?id=DmUr6q1EDYMC&printsec=frontcover&img=1&zoom=1&edge=curl&source=gbs_api";
//이미지 다운로드
https
.get(imageUrl, (res) => {
let imageData = "";
res.setEncoding("binary");
// 이미지 데이터의 인코딩 방식을 binary로 설정함. node.js에서는 blob 인코딩 방식을 지원하지않는다?
res.on("data", (chunk) => {
imageData += chunk;
//이미지 저장
});
res.on("end", () => {
//이미지를 파일로
fs.writeFile("src/img/book-cover.jpg", imageData, "binary", (err) => {
if (err) throw err;
console.log("파일 저장");
});
});
})
.on("error", (err) => {
console.error(err);
});
// const connection = mysql.createConnection({
// host: "127.0.0.1",
// user: "root",
// password: "Xxia1215@@",
// database: "bookstagram",
// });
// connection.connect();
// 데이터베이스 연결
// const userinfo = "SELECT * FROM userinfo";
// const books = "SELECT * FROM books";
// connection.query(books, (error, results, fields) => {
// if (error) {
// console.error("데이터베이스 조회 실패: " + error.stack);
// return;
// }
// console.log(results);
// // connection.query(INSERT INTO books ())
// connection.end();
// });