1.lodash
http://lodashjs.com/docs/ 基础工具包
2.merge-descriptors
mixin的设计模式。
3.escapeHtml 转义字符串
var escapeHtml = require('escape-html') console.log(escapeHtml("hello <")); //hello <
对一段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函数来解析。