D35_W4 HW1 + HW2


Posted by Christy on 2021-05-23

HW1

  • 解題想法:
  1. 透過 request 這套程式串接 API,拿到想要的資料了,把 body 印出來,仔細觀察,發現他是一個 JSON 格式的物件。因此先轉換格式,再寫個迴圈把第一到第十本書的 id + 書名取出來,接著測試看看跑不跑得動。

  2. 遇到的困難:
    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)
// }









Related Posts

Day 31 - Flash Card Project

Day 31 - Flash Card Project

Laravel Homestead 設定

Laravel Homestead 設定

generics

generics


Comments