網頁

2017/11/1

Node.js 發送request請求取得json物件

在Node.js中可以使用request模組來發送請求。

使用request模組前要先從npm下載至專案。

下面範例在node.js中利用request模組發送Google Maps Geocoding API的請求,結果回傳json物件,範例如下

const request = require('request'); // 載入request模組

request({
  url:'https://maps.googleapis.com/maps/api/geocode/json?address=100%E5%8F%B0%E5%8C%97%E5%B8%82%E4%B8%AD%E6%AD%A3%E5%8D%80%E9%87%8D%E6%85%B6%E5%8D%97%E8%B7%AF%E4%B8%80%E6%AE%B5122%E8%99%9F', //Google Maps Geocoding API url 總統府地址
  json: true
}, (error, response, body) => {
  console.log(JSON.stringify(body, undefined, 2)); // body是回傳的json物件,使用JSON.stringify()轉為json字串
});

回傳的json物件使用JSON.stringify()轉為json字串如下。

{
  results: [{
    address_components: [{
      long_name: "122",
      short_name: "122",
      types: ["street_number"]
    },
    {
      long_name: "重慶南路一段",
      short_name: "重慶南路一段",
      types: ["route"]
    },
    {
      long_name: "中正區",
      short_name: "中正區",
      types: ["administrative_area_level_3",
      "political"]
    },
    {
      long_name: "台北市",
      short_name: "台北市",
      types: ["administrative_area_level_1",
      "political"]
    },
    {
      long_name: "台灣",
      short_name: "TW",
      types: ["country",
      "political"]
    },
    {
      long_name: "100",
      short_name: "100",
      types: ["postal_code"]
    }],
    formatted_address: "100台灣台北市中正區重慶南路一段122號",
    geometry: {
      bounds: {
        northeast: {
          lat: 25.0406827,
          lng: 121.5125104
        },
        southwest: {
          lat: 25.038997,
          lng: 121.5113206
        }
      },
      location: {
        lat: 25.0398398,
        lng: 121.5119155
      },
      location_type: "ROOFTOP",
      viewport: {
        northeast: {
          lat: 25.0411888302915,
          lng: 121.5132644802915
        },
        southwest: {
          lat: 25.0384908697085,
          lng: 121.5105665197085
        }
      }
    },
    place_id: "ChIJ8VoOhwqpQjQRwdEJIkQaDhg",
    types: ["premise"]
  }],
  status: "OK"
}

沒有留言:

張貼留言