HW1
- 解題想法:
透過 request 這套程式串接 API,拿到想要的資料了,把 body 印出來,仔細觀察,發現他是一個 JSON 格式的物件。因此先轉換格式,再寫個迴圈把第一到第十本書的 id + 書名取出來,接著測試看看跑不跑得動。
遇到的困難:
2.1 原來要用const obj = JSON.parse(body)
2.2 現在的格式變成,陣列裡面的物件,因此取出物件 (google: 要怎麼取出陣列裡面的物件 js),自己試了半天發現是用obj[0].id
這個格式
2.3 寫個迴圈吧,完成
我真的沒有想到我能自己解出來...
const request = require('request');
// const process = require('process')
// console.log(process.argv)
request(
'https://lidemy-book-store.herokuapp.com/books',
function (error, response, body) {
const obj = JSON.parse(body)
for(let i = 0; i < 10; i++) {
let result = ' '
result += obj[i].id + ' ' + obj[i].name
console.log(result)
}
}
);
HW2
HW2: 作法就在「串接 HTTP API 實戰」影片 2'00" 附近,遇到的困難:
HW2.1:要搞清楚怎麼輸入跟輸出
看到關鍵字,「用 node.js 寫出一個程式並接受參數」,把 body 改成 list,一邊心想,怎麼可能,這就是答案嗎?結....果......就.....是.....這.....樣.....
HW2.2 :忽略了 argv,我把事情想得太複雜
題目要求:node hw2.js read 1 // 輸出 id 為 1 的書籍,但我一直往「如果是輸入 read i」,那我該怎麼做的情況裡,結果做不出來,後來在泡茶的時候想到,應該是要用 argv 吧...
- 寫了奇奇怪怪,不知所云的程式碼
const request = require('request');
// const process = require('process')
// console.log(process.argv)
request(
'https://lidemy-book-store.herokuapp.com/books/1',
function (error, response, body) {
const obj = JSON.parse(body)
// let result = obj.filter(checkId => obj[i].name)
// return result
console.log(obj)
}
);
// function checkId(n) {
// for(let i = 0; i < 20; i++) {
// let result = ''
// if(n === obj[i].id) {
// result = obj[i].name
// }
// }
// console.log(result)
// }