1.0.5 • Published 5 years ago
@redirectionio/proxy v1.0.5
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
- Require the module
// with yarn
$ yarn add @redirectionio/proxy
// with npm
$ npm install --save @redirectionio/proxy
By default, redirection.io will try to reach an agent listening on
tcp://127.0.0.1:20301
.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)
- 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