广州明生堂生物科技有限公司


node.js中的querystring.unescape方法使用说明

网络编程 node.js中的querystring.unescape方法使用说明 06-22

方法说明:

该方法使可用来重写 querystring.parse

语法:

querystring.unescape

接收参数:

源码:

// a safe fast alternative to decodeURIComponent

QueryString.unescapeBuffer = function(s, decodeSpaces) {

  var out = new Buffer(s.length);

  var state = 'CHAR'; // states: CHAR, HEX0, HEX1

  var n, m, hexchar;

  for (var inIndex = 0, outIndex = 0; inIndex <= s.length; inIndex++) {

    var c = s.charCodeAt(inIndex);

    switch (state) {

      case 'CHAR':

        switch (c) {

          case charCode('%'):

            n = 0;

            m = 0;

            state = 'HEX0';

            break;

          case charCode('+'):

            if (decodeSpaces) c = charCode(' ');

            // pass thru

          default:

            out[outIndex++] = c;

            break;

        }

        break;

      case 'HEX0':

        state = 'HEX1';

        hexchar = c;

        if (charCode('0') <= c && c <= charCode('9')) {

          n = c - charCode('0');

        } else if (charCode('a') <= c && c <= charCode('f')) {

          n = c - charCode('a') + 10;

        } else if (charCode('A') <= c && c <= charCode('F')) {

          n = c - charCode('A') + 10;

        } else {

          out[outIndex++] = charCode('%');

          out[outIndex++] = c;

          state = 'CHAR';

          break;

        }

        break;

      case 'HEX1':

        state = 'CHAR';

        if (charCode('0') <= c && c <= charCode('9')) {

          m = c - charCode('0');

        } else if (charCode('a') <= c && c <= charCode('f')) {

          m = c - charCode('a') + 10;

        } else if (charCode('A') <= c && c <= charCode('F')) {

          m = c - charCode('A') + 10;

        } else {

          out[outIndex++] = charCode('%');

          out[outIndex++] = hexchar;

          out[outIndex++] = c;

          break;

        }

        out[outIndex++] = 16 * n + m;

        break;

    }

  }

  // TODO support returning arbitrary buffers.

  return out.slice(0, outIndex - 1);

};

node.js中的events.emitter.removeAllListeners方法使用说明
方法说明:移除所有监听器,如果指定event,则将移除指定事件的所有监听器。语法:emitter.removeAllListeners([event])接收参数:event事件类型,支持多个例

node.js中的events.emitter.listeners方法使用说明
方法说明:注册了指定event的所有监听器将被作为数组返回。语法:emitter.listeners(event)接收参数:event指定事件例子:server.on('connection',function(stream){consol

node.js中的events.emitter.removeListener方法使用说明
方法说明:移除指定事件的某个监听器。语法:emitter.removeListener(event,listener)接收参数:event(string)事件类型listener(function)已注册过的监听器例子:varcallb


编辑:广州明生堂生物科技有限公司

标签:监听器,方法,事件,语法,参数