url模块和underscore模块


一.url模块介绍

  get请求时,用户请求的参数是在request的url属性中,纯字符串,使用起来并不方便,url模块可以更方便地解析用户请求的get参数

  具体使用

  1. 加载模块 var url = require('url');

  2. 调用parse()方法解析

url.parse(urlString[, parseQueryString[, slashesDenoteHost]]);
var urlObj = url.parse(reqUrl, true);

// url对象的pathname属性,获取不包含查询字符串的url
// url对象的query属性中包含的就是请求字符串的键值对对象

二.underscore模块介绍

  • 官方文档:http://underscorejs.org/

  • 中文文档:http://www.bootcss.com/p/underscore/

参考描述

1、Underscore is a JavaScript library that provides a whole mess of useful functional programming helpers without extending any built-in objects. 
?
2、Underscore 是一个 JavaScript 工具库,它提供了一整套函数式编程的实用功能,但是没有扩展任何 JavaScript 内置对象。
他解决了这个问题:“如果我面对一个空白的 HTML 页面,并希望立即开始工作,我需要什么?” 他弥补了 jQuery 没有实现的功能,同时又是 Backbone 必不可少的部分。 ? Underscore 提供了100多个函数,包括常用的:map、filter、invoke — 当然还有更多专业的辅助函数,
如:函数绑定、JavaScript 模板功能、创建快速索引、强类型相等测试等等。

模板语法介绍:

  • <%= %>, 中间写表达式

  • <%%>, 中间写语句

参考写法

  • 提示:underscore库建议使用'_'来命名对象,类似于jQuery使用$来命名

?
// 案例一:
var html = '

<%= name %>

'; var compiled = _.template(html); var result = compiled({name: 'aaaa'}); console.log(compiled); ? ? ? // 案例二: // 构建模板字符串 var html = '<%for (var i = 0; i < 5; i++) { %>

<%= name %>

<% }%>'; ? // 编译模板 var compiled = _.template(html); ? // 进行模板字符串替换 var result = compiled({name: '张三'}); ? // 输出后的结果 console.log(result);

underscore中_.template()函数返回值其实就是一个函数:

function(obj){
  var __t;
  var __p = '';
  var __j = Array.prototype.join,print = function () {
    __p += __j.call(arguments,'');
  };

  with(obj||{}) {
    __p += '

' + ((__t = (name)) == null ? '' : __t) + '

'; } return __p; }