@scottwalker/node-http-client

Простой HTTP/HTTPS клиент для NodeJS

Usage no npm install needed!

<script type="module">
  import scottwalkerNodeHttpClient from 'https://cdn.skypack.dev/@scottwalker/node-http-client';
</script>

README

Node HTTP client

Build Version NPM Package Scottweb

Простой HTTP/HTTPS клиент для NodeJS

Пример создания простого GET запроса

const { HttpClient } = require("@scottwalker/node-http-client")

// Инициализировать HTTP клиент
const httpClient = new HttpClient()

httpClient.get("https://example.com", { query: { page: 1 } })
  .then(content => console.log(content))
  .catch(error => console.error(error))

Пример создания простого POST запроса

const { HttpClient } = require("@scottwalker/node-http-client")

// Инициализировать HTTP клиент
const httpClient = new HttpClient()

/**
 * Отправить данные
 * @param {Object} data
 * @return {Promise}
 */
async function postData(data = {}) {
  try {
    return await httpClient.post("https://example.com", data)
  } catch (error) {
    console.error(error)

    return null
  }
}

postData({ message: "Hello World" })

Пример создания более сложного запроса

Если указать в заголовках запроса Content-Type: application/json, то тело ответа будет преобразовано в js объект (при условии валидного JSON в теле ответа), также для удобства можно использовать пересет presetHeaders.json

const { HttpClient, presetHeaders, METHOD_PUT } = require("@scottwalker/node-http-client")

// Инициализировать HTTP клиент (с конфигурацией)
const httpClient = new HttpClient({
  baseUrl: "https://example.com",
  headers: {
    ...presetHeaders.json
    "X-My-Param": "hello"
  }
})

const requestPromise = httpClient.request({
  method: METHOD_PUT,
  url: "info/update",
  query: { 
    limit: 1,
    order: "desc" 
  },
  data: { 
    message: "Hello World"
  }
})

requestPromise
  .then(content => console.log(content))
  .catch(error => console.error(error))

Конструктор клиента принимает в себя объект конфигурации, содержащий следующие параметры:

baseUrl - базовый URL для всех запросов
headers - заголовки по умолчанию

Метод request принимает в себя объект, содержащий следующие параметры:

method - метод запроса
url - URL адрес
query - GET параметры запроса
data - тело запроса
headers - заголовки

Пример отправки формы

Воспользуйтесь пересетом headers.form

const { HttpClient, presetHeaders } = require("@scottwalker/node-http-client")

// Инициализировать HTTP клиент (с конфигурацией)
const httpClient = new HttpClient({
  baseUrl: "https://example.com",
})

httpClient.post("order", { name: "scott", price: 10 }, { headers: presetHeaders.form })
  .then(content => console.log(content))
  .catch(error => console.error(error))