Typescript Http 请求发送表单数据

Typescript Http request send form data

我想发送表单数据。但是请求没有 body 属性。 如何使用请求发送表单数据?

import { request } from 'http';

const form = new FormData();
form.append('file', FILE);

const req = request(
                {
                    host : HOST,
                    port : '80',
                    method : 'POST',
                    path : PATH,
                    headers : form.getHeaders(),        
                },
                response => {
                }
            );

老实说,node 中的 http 库真的很低级,使用起来不是很友好。我会考虑查看类似 axios 的内容,因为它对开发人员更友好。

如果您打算使用 http,那么 official docs are useful, in particular for you request.write 就是您正在寻找的方法。

来自 nodejs 的相同文档为 post 提供了 worked examples 和 axios:

const axios = require('axios')

axios
  .post('https://whatever.com/todos', {
    todo: 'Buy the milk'
  })
  .then(res => {
    console.log(`statusCode: ${res.status}`)
    console.log(res)
  })
  .catch(error => {
    console.error(error)
  })

或 http:

const https = require('https')

const data = JSON.stringify({
  todo: 'Buy the milk'
})

const options = {
  hostname: 'whatever.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()