nodejs API笔记
一、URL
涉及到的方法
1、parse():解析地址
2、format():生成地址
3、resolve(from,to):组合成地址
举例说明:
url.parse('http://baidu.com:8010/list?from=lk&lk=ooo#dd')
输出结果:
{ protocol: 'http:',
slashes: true,
auth: null,
host: 'baidu.com:8010',
port: '8010',
hostname: 'baidu.com',
hash: '#dd',
search: '?from=lk&lk=ooo',
query: 'from=lk&lk=ooo', //解析成字符串
pathname: '/list',
path: '/list?from=lk&lk=ooo',
href: 'http://baidu.com:8010/list?from=lk&lk=ooo#dd' }
url.parse('http://baidu.com:8010/list?from=lk&lk=ooo#dd',true)
输出结果:
{ protocol: 'http:',
slashes: true,
auth: null,
host: 'baidu.com:8010',
port: '8010',
hostname: 'baidu.com',
hash: '#dd',
search: '?from=lk&lk=ooo',
query: { from: 'lk', lk: 'ooo' }, //解析成对象
pathname: '/list',
path: '/list?from=lk&lk=ooo',
href: 'http://baidu.com:8010/list?from=lk&lk=ooo#dd' }
url.resolve('http://baidu.com','/list')
输出结果:
'http://baidu.com/list'
二、querystring
解析query
1、序列化函数stringify()
querystring.stringify({ foo: 'bar', baz: ['qux', 'quux'], corge: '' })
// returns
'foo=bar&baz=qux&baz=quux&corge='
querystring.stringify({foo: 'bar', baz: 'qux'}, ';', ':')
// returns
'foo:bar;baz:qux'
2、反序列化函数parse()
querystring.parse('foo=bar&baz=qux&baz=quux&corge')
// returns
{ foo: 'bar', baz: ['qux', 'quux'], corge: '' }
querystring.parse('foo:bar;baz:qux;baz:quux;corge:',';',':')
{ foo: 'bar',
baz: [ 'qux', 'quux' ],
corge: '' }
3、转义和反转义escape()和unescape()
querystring.escape('哈哈')
输出结果:
'%E5%93%88%E5%93%88'
querystring.unescape('%E5%93%88%E5%93%88')
输出结果:
'哈哈'
三、HTTP模块
1、HTTP事件回调
什么是回调:nodejs按顺序执行异步逻辑时,一般采用后续传递,即将后续逻辑封装在回调函数中,作为起始函数的参数
举例说明:
function learn(something){
console.log(something)
}
function we(callback, something){
something += ' is cool!'
callback(something)
}
we(learn, 'Nodejs')
2、什么是同步和异步
var c = 0
function print() {
console.log(c)
} function plus (){ setTimeout(function(){
c+=1
},1000) //延时1秒执行
}
plus()
print()
输出结果是 0 改进代码(回调的形式)
var c = 0
function print() {
console.log(c)
} function plus (callback){ setTimeout(function(){
c+=1
callback()
},1000)
}
plus(print)
输出结果为1
3、IO
文件和数据库的读取和写入。
4、Nodejs核心思想
非阻塞、单线程、事件驱动
5、HTTP源码解读
5.1、什么是作用域
分为局部和全局作用于(函数、变量)
5.2、什么是上下文
主要是指this方法名,this指向函数拥有者,只在函数内部使用。
举例说明:
var pet = {
words: '...',
speak: function() {
console.log(this.words)
console.log(this === pet)
}
}
pet.speak()
输出:
...
true
注意:js中类的可以用function()实现,当然也可以用pet = {}来实现
function pet(words){
this.words = words
this.speak = function(){
console.log(this.words)
console.log(this)
}
}
var cat = new pet('CAT')
cat.speak()
输出结果:
CAT
{ words: 'CAT', speak: [Function] }
5.3call的使用
call改变了上下文,将this指向了dog
pet = {
words: '...',
speak: function(say){
console.log(say+" "+this.words)
}
}
var dog = {
words: 'Wang'
}
pet.speak.call(dog,'Speak')
输出结果:
Speak Wang
利用call可以实现继承:
举例说明:
function pet(words){
this.words = words
this.speak = function(){
console.log(this.words)
}
}
function Dog(words){
pet.call(this,words)//将pet的this指向Dog
}
var dog = new Dog('Wang')
dog.speak();
输出结果:
Wang
5.4HTTP性能测试:
利用Apache ab测试
$ ab -n1000 -c100 http://127.0.0.1:3000
-n1000指总的请求数是1000
-c100指并发性是100
还有其他参数
-t测试所进行总时间
-p post文件
-w以html表格的形式输出结果
nodejs API笔记的更多相关文章
- Nodejs学习笔记(六)--- Node.js + Express 构建网站预备知识
目录 前言 新建express项目并自定义路由规则 如何提取页面中的公共部分? 如何提交表单并接收参数? GET 方式 POST 方式 如何字符串加密? 如何使用session? 如何使用cookie ...
- Nodejs学习笔记(十五)--- Node.js + Koa2 构建网站简单示例
目录 前言 搭建项目及其它准备工作 创建数据库 创建Koa2项目 安装项目其它需要包 清除冗余文件并重新规划项目目录 配置文件 规划示例路由,并新建相关文件 实现数据访问和业务逻辑相关方法 编写mys ...
- Nodejs学习笔记(十六)--- Pomelo介绍&入门
目录 前言&介绍 安装Pomelo 创建项目并启动 创建项目 项目结构说明 启动 测试连接 聊天服务器 新建gate和chat服务器 配置master.json 配置servers.json ...
- nodejs爬虫笔记(二)---代理设置
node爬虫代理设置 最近想爬取YouTube上面的视频信息,利用nodejs爬虫笔记(一)的方法,代码和错误如下 var request = require('request'); var chee ...
- [转]Nodejs学习笔记(十五)--- Node.js + Koa2 构建网站简单示例
本文转自:https://www.cnblogs.com/zhongweiv/p/nodejs_koa2_webapp.html 目录 前言 搭建项目及其它准备工作 创建数据库 创建Koa2项目 安装 ...
- Nodejs学习笔记(十六)—Pomelo介绍&入门
前言&介绍 Pomelo:一个快速.可扩展.Node.js分布式游戏服务器框架 从三四年前接触Node.js开始就接触到了Pomelo,从Pomelo最初的版本到现在,总的来说网易出品还算不错 ...
- Nodejs学习笔记(十五)—Node.js + Koa2 构建网站简单示例
前言 前面一有写到一篇Node.js+Express构建网站简单示例:http://www.cnblogs.com/zhongweiv/p/nodejs_express_webapp.html 这篇还 ...
- Nodejs学习笔记(六)—Node.js + Express 构建网站预备知识
前言 前面经过五篇Node.js的学习,基本可以开始动手构建一个网站应用了,先用这一篇了解一些构建网站的知识! 主要是些基础的东西... 如何去创建路由规则.如何去提交表单并接收表单项的值.如何去给密 ...
- NodeJS学习笔记 进阶 (13)Nodejs进阶:5分钟入门非对称加密用法
个人总结:读完这篇文章需要5分钟,这篇文章讲解了Node.js非对称加密算法的实现. 摘录自网络 地址: https://github.com/chyingp/nodejs-learning-guid ...
随机推荐
- 关于use-default-filters的一个问题
use-default-filters=true 默认行为会自动扫描所有注解
- objectC时间用法
#define kDEFAULT_DATE_TIME_FORMAT (@"yyyy-MM-dd HH:mm:ss") //获取当前日期,时间+(NSDate *)getCurren ...
- 1242. Werewolf(dfs)
1242 简单dfs 往孩子方向搜一遍 父母方向搜一遍 输入还搞什么字符串.. #include <iostream> #include<cstdio> #include< ...
- LA 4127 - The Sky is the Limit (离散化 扫描线 几何模板)
题目链接 非原创 原创地址:http://blog.csdn.net/jingqi814/article/details/26117241 题意:输入n座山的信息(山的横坐标,高度,山底宽度),计算他 ...
- struts2 获取前台表单的值?? 原理??
struts2中,在ACTION中申明一个变量 private string 变量名:然后设置变量名 的get/set方法: 在运行的时候struts2会自动获取. 比如:jsp 页面中有个文本框&l ...
- 为初学者写ORM,ORM的原理及测试案例
提纲 一.什么是ORM.二.反射以及Attribute在ORM中的应用.三.创建一个数据库表和表对应的实体model.四.实体model如何映射出数据库表.五.组合ORM映射生成insert语句.六. ...
- UVA 10537 The Toll! Revisited 过路费(最短路,经典变形)
题意:给一个无向图,要从起点s运送一批货物到达终点e,每个点代表城镇/乡村,经过城镇需要留下(num+19)/20的货物,而经过乡村只需要1货物即可.现在如果要让p货物到达e,那么从起点出发最少要准备 ...
- LeetCode: Combination Sum I && II && III
Title: https://leetcode.com/problems/combination-sum/ Given a set of candidate numbers (C) and a tar ...
- android 应用页面与数据申请逻辑剥离;
1.页面与数据申请剥离,数据申请框架可以灵活更换,解耦合: 2.对应页面的数据申请类中,将返回数据解析剥离,灵活更换数据返回及对应解析: 二.模块划分: 1.一些通用的工具类,可以考虑迁移到com.c ...
- hdu 3172 Virtual Friends(并查集)University of Waterloo Local Contest 2008.09
题目比较简单,但作为长久不写题之后的热身题还是不错的. 统计每组朋友的朋友圈的大小. 如果a和b是朋友,这个朋友圈的大小为2,如果b和c也是朋友,那么a和c也是朋友,此时这个朋友圈的大小为3. 输入t ...