使用Node進行HTTP POST請求
了解如何使用Node進行HTTP POST請求
在Node中進行HTTP POST請求有很多方法,具體取決於你想使用的抽象級別。
在Node中執行HTTP請求最簡單的方法是使用Axios庫:
1 2 3 4 5 6 7 8 9 10 11 12 13
| const axios = require('axios')
axios .post('/todos', { todo: '買牛奶', }) .then((res) => { console.log(`statusCode: ${res.statusCode}`) console.log(res) }) .catch((error) => { console.error(error) })
|
另一種方法是使用Request庫:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
| 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請求,雖然比前面兩種選項更冗長:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
| 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()
|
tags: [“Node.js”, “HTTP POST”, “Axios”, “Request”, “技術”, “編程”]