https://github.com/rokid/node-http-bypass
Bypass your HTTP/HTTPS backend service configrablly in an easy way.
https://github.com/rokid/node-http-bypass
bypass http nodejs
Last synced: 10 months ago
JSON representation
Bypass your HTTP/HTTPS backend service configrablly in an easy way.
- Host: GitHub
- URL: https://github.com/rokid/node-http-bypass
- Owner: rokid
- Created: 2018-04-06T11:41:17.000Z (almost 8 years ago)
- Default Branch: master
- Last Pushed: 2018-04-07T10:47:22.000Z (almost 8 years ago)
- Last Synced: 2025-03-29T01:34:13.415Z (10 months ago)
- Topics: bypass, http, nodejs
- Language: JavaScript
- Size: 11.7 KB
- Stars: 5
- Watchers: 9
- Forks: 2
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
node-http-bypass
========================
Bypass your HTTP/HTTPS backend service configrablly in an easy way.
### Usecase
We use this tool to develop our new forum project without any changes on server-side, which is based on
the discourse API, the CORS-required website.
CORS sometimes take you in a trap, and block your development flow, Yep? With node-http-bypass,
you could customize anything that you wanna without changes on your server-side, just start
writing code and put the CORS configurations after the demo is ready for production!
> Your usecase? [create Pull Request](https://github.com/Rokid/node-http-bypass/compare) to submit :p
### Usage
You need to define the following JSON under your working directory:
```json
{
"listen": 8888,
"targetURL": "https://github.com",
"outgoing": {
"access-control-allow-headers": "+Content-Type"
}
}
```
This JSON should be named as `.bypassconfig` and under your `CWD`. Run `bypass` or `http-bypass` in your shell,
the program reads this config file, and do the followings:
- start the proxy server on `listen` as its port.
- when requesting to proxy server, it do request based on the `targetURL`.
- when the target responds to proxy server finally, it rewrites the headers by the field `outgoing`.
- for the `+s` rule, it inserts the given string to the header.
- for the `s`(string) rule, it replaces the whole value of the specific header.
*Wanna an API to integrate?*
Yes, it also provides programming interface for doing what you want. Just like the following:
```js
const ByPassServer = require('http-bypass').ByPassServer
const proxy = new ByPassServer({
listen: 8000,
targetURL: 'https://github.com',
outgoing: {},
})
proxy.start()
```
The `config` object structure follows the `.bypassconfig`, so just see [Usage](#usage) for details.
### Installation
```sh
$ npm i node-http-bypass -g
```
### License
MIT @ Rokid, Inc.