基础工具包

1.lodash

  http://lodashjs.com/docs/ 基础工具包

2.merge-descriptors

   mixin的设计模式。

3.escapeHtml 转义字符串

var escapeHtml = require('escape-html')
console.log(escapeHtml("hello <"));  
//hello &lt;

 对一段html代码转码,避免xss漏洞。

4.query string

在get请求中,把一个对象转换成URL中的请求参数字符串:

var requestOptions = {
      hostname:"api.twitter.com",
      port:443,
      method:'GET',
      url:'/1.1/statuses/oembed.json?'+querystring.stringify(options),
     headers:{
        'Authorization':'Bearer' +accessToken
     }
}

 5.打印循环引用的JSON数据结构

var util = require("util");
/*
   req为一个很庞大的数据结构,
   req.params为undefined;
   req.baseUrl为undefined;
   depth:null没有层级,全部打印!
*/
console.log(req);
console.log("req="+util.inspect(req.params,{depth:null}) );
console.log("req="+util.inspect(req.baseUrl,{depth:null}) );

6.parseUrl

提供parseUrl方法和originalurl成员。先看nodejs中url包的parse函数用法:

var urlstr="https://www.baidu.com/s?wd=nodejs+api&tn=98012088_5_dg&ch=11";
var url = require('url')
var parse = url.parse
/*
Url {
  protocol: 'https:',
  slashes: true,
  auth: null,
  host: 'www.baidu.com',
  port: null,
  hostname: 'www.baidu.com',
  hash: null,
  search: '?wd=nodejs+api&tn=98012088_5_dg&ch=11',
  query: 'wd=nodejs+api&tn=98012088_5_dg&ch=11',
  pathname: '/s',
  path: '/s?wd=nodejs+api&tn=98012088_5_dg&ch=11',
  href: 'https://www.baidu.com/s?wd=nodejs+api&tn=98012088_5_dg&ch=11' }
  */
console.log(parse(urlstr));

在parseUrl源码中的fastparse(str)中的首先是用正则表达式来解析url,如果解析成功;则返回解析结果,否则通过url包的parse函数来解析。

原文地址:https://www.cnblogs.com/liuyinlei/p/7269611.html