/

使用Node進行HTTP POST請求

使用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”, “技術”, “編程”]