1.0.5 • Published 5 years ago

@redirectionio/proxy v1.0.5

Weekly downloads
263
License
MIT
Repository
github
Last release
5 years ago

redirection.io Proxy for Node.js

The redirection.io Proxy for Node.js works in combination with redirection.io.

If you don't know what is redirection.io, take the time to make a quick tour on the website.

Before using it, you need:

  • a redirection.io account. If you don't have an account, please contact us here.
  • a configured redirection.io agent on your server. Please follow the installation guide.

Drop us an email to support@redirection.io if you need help or have any question.

Requirements

Installation

  1. Require the module
// with yarn
$ yarn add @redirectionio/proxy

// with npm
$ npm install --save @redirectionio/proxy
  1. By default, redirection.io will try to reach an agent listening on tcp://127.0.0.1:20301.

  2. If you need to configure redirection.io to use your personal agent informations, pass a dictionary of connections as last argument:

const config = {
    agent_tcp: 'tcp://127.0.0.1:20301',
    agent_unix: 'unix:///var/run/redirectionio_agent.sock',
    // ...
}

// Express
rio.handleExpressRequest(app, config)

// Http
await rio.handleHttpRequest(req, res, config)
  1. Then pick the usage that fit your needs (or write your own)

Usages

Pure http

const http = require('http')
const rio = require('@redirectionio/proxy') // require the module

const port = YOUR_PORT

// don't forget to pass an async function here
const server = http.createServer(async (req, res) => {

    // wait here until we have a response from redirection.io
    const redirect = await rio.handleHttpRequest(req, res)

    if (!redirect) {
        // no redirection rule found, handle request here...
    }
})

server.listen(port)

express

const app = require('express')()
const rio = require('@redirectionio/proxy') // require the module

const port = YOUR_PORT

// put this line as top as possible
rio.handleExpressRequest(app)

// handle your app routes as usual...
app.get('/', (req, res) => {
    res.send('Hello world')
})

app.use((req, res, next) => {
    res.status(404).send('Page not found.');
})

app.listen(port)

Demonstration

Available commands

  • Start http demo server on localhost:8002
$ yarn http
  • Start express demo server on localhost:8001
$ yarn express
  • Start both express and http demo servers
$ yarn start
  • List server(s)
$ yarn list
  • Restart server(s)
$ yarn restart
  • Stop server(s)
$ yarn stop

Contribution

Any contribution is welcome :) Thanks.

Install dev dependencies

$ yarn install

Run tests

$ yarn test

Run linter

$ yarn lint

Transpile babel code

$ yarn build
1.0.5

5 years ago

1.0.4

6 years ago

1.0.3

6 years ago

1.0.2

6 years ago

1.0.1

6 years ago

1.0.0

6 years ago

0.0.1

6 years ago