0.1.6 • Published 10 years ago

doji v0.1.6

Weekly downloads
11
License
MIT
Repository
github
Last release
10 years ago

Doji

Doji is a simple but strong http proxy lib.

Also U can use this with host manager

Install

For Mac

sudo npm install -g doji

For Windows

npm install -g doji

If U get some error like "Cannot find module 'doji'", see how to resolve the windows path;

use like a server

var doji = require('doji');
var proxy = doji({
  //your options
});
proxy.listen(9000);

use like a lib

var doji = require('doji');
doji.proxy(req, res);

API

  • config

Update the proxy server config

doji.config(options)

options demo:

{
  // The local source file director
  dojiDir: "/User/Ryota/Works/demo/src/",
  filters: {
    '\\/\\d+\\.\\d+\\.\\d+\\/': '/',
    '(\\-min\\.)(js|css)': '.$2',
    '(\\.min\\.)(js|css)': '.$2'
  },
  hosts: {
    'c\\.cc\\:9001': 'debug.clam.org:9002',
    '(\.*)\\.tbcdn.cn': function (host, matched) {
      return matched + '.daily.clam.org';
    }
  },
  urls: {
    // local files remote
    '^\\/t1\\/(\.*)': function (path, matched) {
      return '/remote1/'+ matched;
    },
    // local file remote2
    '^\\/t2\\/\.*': '/remote2'
  },
  // if set `DOJI_TIME_STAMP_HANDLE` will add timestamp for resource
  // if set an Object like  this will replace the regexp key with the value you give.
  // if set Object value as `TIME_STAMP_BUILDER` or others in doji.Parsers.TOKENS ;
  // @example 
  //  {
  //    '\\<iframe.+?\>': ''  
  //  }
  parsers: [
    parserHandle1,
    parserHandle2,
    doji.noBom,
    {
      '\\a\\.\\b': 'demo.com'
    },
    'DOJI_TIME_STAMP_HANDLE'
  ],
  widgets: {
    "#header": {
      method: 'append',
      file: '/mods/header/header.html',
      // only 'css' 'attr' will use this.
      // future add Juicer compile support
      data: ''
    }
  }
}
  • proxy args: req, res

Events

eventTypewhenarguments
req:startwhen request come inargs: req
req:datawhen request data comingargs: req
req:endwhen request data end if u want to handle this dataargs: req
req:abortwhen request errorargs: req, res, error
req:closewhen request closed by server sideargs: req
proxy:circlewhen proxy in circleargs: req, res
proxy:localwhen connect with local(on PC)args: req, res
res:startwhen response startargs: req, proxyResponse
res:datawhen response data comingargs: req, proxyResponse
res:endwhen response data endargs: req, proxyResponse

##About me

I'm a Web-Developer, living in Hangzhou China.

##How to keep connect with me.

U can post an email or a issue at github

Thank you for install doji~

0.1.6

10 years ago

0.1.5

11 years ago

0.1.4

11 years ago

0.1.3

11 years ago

0.1.2

11 years ago

0.1.1

11 years ago

0.1.0

11 years ago

0.0.10

11 years ago

0.0.9

11 years ago

0.0.8

11 years ago

0.0.7

11 years ago

0.0.6

11 years ago

0.0.5

11 years ago

0.0.4

11 years ago

0.0.3

11 years ago

0.0.2

11 years ago

0.0.1

11 years ago

0.0.0

11 years ago