了解如何使用Node進行HTTP POST請求

在Node中進行HTTP POST請求有很多方法,具體取決於你想使用的抽象級別。

在Node中執行HTTP請求最簡單的方法是使用Axios庫

const axios = require('axios')

axios
  .post('/todos', {
    todo: '買牛奶',
  })
  .then((res) => {
    console.log(`statusCode: ${res.statusCode}`)
    console.log(res)
  })
  .catch((error) => {
    console.error(error)
  })

另一種方法是使用Request庫

const request = require('request')

request.post(
  '/todos',
  {
    json: {
      todo: '買牛奶',
    },
  },
  (error, res, body) => {
    if (error) {
      console.error(error)
      return
    }
    console.log(`statusCode: ${res.statusCode}`)
    console.log(body)
  }
)

到目前為止介紹的2種方法需要使用第三方庫。

使用Node標準模塊也可以進行POST請求,雖然比前面兩種選項更冗長:

const https = require('https')

const data = JSON.stringify({
  todo: '買牛奶',
})

const options = {
  hostname: 'yourwebsite.com',
  port: 443,
  path: '/todos',
  method: 'POST',
  headers: {
    'Content-Type': 'application/json',
    'Content-Length': data.length,
  },
}

const req = https.request(options, (res) => {
  console.log(`statusCode: ${res.statusCode}`)

  res.on('data', (d) => {
    process.stdout.write(d)
  })
})

req.on('error', (error) => {
  console.error(error)
})

req.write(data)
req.end()