了解如何使用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()