express-request-router

1.0.4 • Public • Published

Express-Request-Router

Роутер для фреймворка Express, который выполняет запросы с указанными параметрами и возвращает результат. На данный момент положение дел такое, что используя одни лишь ajax-запросы, нельзя обратиться к любому ресурсу. Так же, существует CORS-спецификация, которая требует дополнительных заголовков со стороны сервера. Предоставляются они не всеми. Некоторыми исходя из политики безопасности, некоторыми из-за незнания. Данный модуль позволяет отсылать запросы со стороны сервера и решает вышеописанные проблемы.

Установка

Этот модуль устанавливается с помощью NPM:

npm install -S express-request-router

Данный код запускает Express-сервер, который при запросах к "localhost:3000/request" передаёт управление expressRequestRouter.

const app = require('express')();
const requestRouter = require('express-request-router');
 
app.use('/request', requestRouter);
app.listen(3000, () => {
  console.log('Сервер запущен на порту 3000.');
});

Использование

Если становится понятно, что политика безопасности какого-либо сайта не позволяет выполнить кроссдоменный запрос, можно выполнить запрос к localhost:3000/request передав в теле заголовка JSON-объект со следующими параметрами:

  • url: string - Ресурс к которому нужно выполнить запрос.
  • method: string = 'GET' - HTTP-метод запроса.
  • headers: object = {} - HTTP-заголовки запроса.
  • redirect: string = 'follow' - можно поставить 'follow' для обычного поведения при коде 30x (следовать редиректу) или 'error' для интерпретации редиректа как ошибки.
  • body: string = '' - Тело запроса.
  • proxy: string - HTTP-прокси через который будет выполнен запрос. (Пример: http://5.188.233.174:3000@1YZ8VQ:ANEOSWWEJE)

Пример

(async function () {
  try {
    let response = await fetch('/request', {
      headers: {'Content-Type': 'application/json'},
      method: 'post',
      body: JSON.stringify({
        url: 'https://2ip.ru',
        method: 'GET'
      })
    })
 
    let ip2 = document.createElement('div');
    ip2.innerHTML = await response.text();
    document.body.appendChild(ip2);
  }
  catch (error) {
    console.error(error);
  }
})();

Readme

Keywords

Package Sidebar

Install

npm i express-request-router

Weekly Downloads

1

Version

1.0.4

License

ISC

Last publish

Collaborators

  • zaets-pobegaec