How is an HTTP POST request made in node.js?

后端 未结 21 2837
南方客
南方客 2020-11-21 23:54

How can I make an outbound HTTP POST request, with data, in node.js?

21条回答
  •  佛祖请我去吃肉
    2020-11-22 00:22

    There are dozens of open-source libraries available that you can use to making an HTTP POST request in Node.

    1. Axios (Recommended)

    const axios = require('axios');
    
    const data = {
        name: 'John Doe',
        job: 'Content Writer'
    };
    
    axios.post('https://reqres.in/api/users', data)
        .then((res) => {
            console.log(`Status: ${res.status}`);
            console.log('Body: ', res.data);
        }).catch((err) => {
            console.error(err);
        });
    

    2. Needle

    const needle = require('needle');
    
    const data = {
        name: 'John Doe',
        job: 'Content Writer'
    };
    
    needle('post', 'https://reqres.in/api/users', data, {json: true})
        .then((res) => {
            console.log(`Status: ${res.statusCode}`);
            console.log('Body: ', res.body);
        }).catch((err) => {
            console.error(err);
        });
    

    3. Request

    const request = require('request');
    
    const options = {
        url: 'https://reqres.in/api/users',
        json: true,
        body: {
            name: 'John Doe',
            job: 'Content Writer'
        }
    };
    
    request.post(options, (err, res, body) => {
        if (err) {
            return console.log(err);
        }
        console.log(`Status: ${res.statusCode}`);
        console.log(body);
    });
    

    4. Native HTTPS Module

    const https = require('https');
    
    const data = JSON.stringify({
        name: 'John Doe',
        job: 'Content Writer'
    });
    
    const options = {
        hostname: 'reqres.in',
        path: '/api/users',
        method: 'POST',
        headers: {
            'Content-Type': 'application/json',
            'Content-Length': data.length
        }
    };
    
    
    const req = https.request(options, (res) => {
        let data = '';
    
        console.log('Status Code:', res.statusCode);
    
        res.on('data', (chunk) => {
            data += chunk;
        });
    
        res.on('end', () => {
            console.log('Body: ', JSON.parse(data));
        });
    
    }).on("error", (err) => {
        console.log("Error: ", err.message);
    });
    
    req.write(data);
    req.end();
    

    For details, check out this article.

提交回复
热议问题