-
HTTP知识
查看全部 -
模块的流程
查看全部 -
git Bash
查看全部 -
模块与包管理工具
查看全部 -
www.npmjs.com node.js github.com
stackoverflow.com
查看全部 -
解决linux环境安装问题
yum -y update && yum -y groupinstall "Development Tools"
查看全部 -
一、http.request(options[, callback]);
hots、hostname(host的别名)、port、localAddress、socketPath、method、path、headers、auth、agent(代理)、keepAlive、keepAliveMsecs
二、
//// request.js var http = require('http'); var querystring = require('querystring'); var postData = querystring.stringify({ 'content': '一起期待下一期的课程', 'cid': 348 }); var options = { hostname: 'www.imooc.com', port: 80, path: '/course/document', method: 'post', headers: { 'Accept': 'application/json, text/javascript, */*; q=0.01', 'Accept-Encoding': 'gzip, deflate', 'Accept-Language': 'zh-CN,zh;q=0.9,en;q=0.8' 'Cache-Control': 'no-cache', 'Connection': 'keep-alive', 'Content-length': postData.length, 'Cookie': 'imooc_uuid=3d8f2c90-7665-4a1e-b895-df1d56529a9a; imooc_isnew_ct=1536739444; imooc_isnew=2; IMCDNS=0; Hm_lvt_fb538fdd5bd62072b6a984ddbc658a16=1536739476,1536890903; Hm_lvt_f0cfcccd7b1393990c78efdeebff3968=1536739480,1536890903; Hm_lpvt_fb538fdd5bd62072b6a984ddbc658a16=1536905046; Hm_lpvt_f0cfcccd7b1393990c78efdeebff3968=1536905046; cvde=5b9b18152e001-33', 'Host': 'www.imooc.com', 'Pragma': 'no-cache', 'Referer': 'http://www.imooc.com/learn/348', 'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/69.0.3497.92 Safari/537.36', 'X-Requested-With': 'XMLHttpRequest' } }; var req = http.request(options, function(res) { console.log('Status:' + res.statusCode); console.log('headers:' + JSON.stringify(res.headers)); res.on('data', function(chunk){ console.log(Buffer.isBuffer(chunk)); console.log(typeof chunk); }); res.on('end', function() { console.log('评论完毕'); }); }); req.on('error', function(e) { console.log('Error' + e.message); }); req.write(postData); req.end();
查看全部 -
一、nodeJs不存在浏览器中的冒泡,捕获等行为。有events模块。
二、EventEmitter事件发射,事件监听。支持多个事件监听,最大支持10个(值可以修改)。
life.setMaxListeners(11);
三、
// 查看事件是否被监听过 var hasConfortListener = life.emit('hug', '汉子'); // true:监听过,false:没被监听
四、
//// ①事件监听的移除 life.removeListener('hug', water); // hug:事件名,water:方法名 life.removeAllListeners('hug'); // 批量移除 //// ②事件监听的数量 life.listeners('hug'.length); EventEmitter.listenerCount(life, 'hug');
查看全部 -
一、sudo npm install cheerio。像jquery一样的模块。如果没有sudo,会报错(没有权限)。
var $ = cheerio.load(html);
二、forEach是js中的方法(针对数组),each是jquery中的方法。
查看全部 -
一、测试http性能,appache自带的ab.
ab -n1000 -c10 http://localhost:2015/
(1)-n:总请求数,
-c:并发数,Concurrency[kən'kʌrənsi](并发性)。
-t:测试进行的总时间,-p:post数据文件,-w:以html表格形式输出文件。
(2)2015后要加/
二、重要指标
1、Requests per second:服务器吞吐率。
2、Time per request:用户平均请求的等待时间。
3、第2个Time per request:每个连接请求时间实际运行时间的平均值。
查看全部 -
作用域:与调用函数,访问变量的能力有关 作用域分为:局部和全局(在局部作用域里可以访问到全局作用域的变量,但在局部作用域外面就访问不到局部作用里面所设定的变量)
上下文:与this关键字有关 是调用当前可执行代码的引用 this总是指向调用这个的方法的对象 js里的this 通常是当前函数的拥有者,拥有者叫做执行上下文。在nodejs中声明函数中的this指向全局global,js中指向window。实例化函数后,指向当前函数的拥有者。
call和apply可以改变上下文执行对象。(把原来的this全都替换成自己指定的对象即可理解。)
查看全部 -
一、github项目页按下't'键,能快速调出搜索页。
二、搜索http.js,知道createServer做了什么事,搜索_http_server, emit触发request事件。
查看全部 -
一、javascript的this指向当前函数的拥有者。拥有者叫做执行上下文。
this只能在函数内部使用。
二、node.js中this
1、
var pet = { words: '...', speak: function() { console.log(this.words); console.log(this === pet); // true } }; pet.speak();
2、nodeJs中是global,javascript是window
function pet(words) { this.words = words; console.log(this.words); console.log(this === global); // true } pet('...');
三、上下文
定义时的上下文、调用时的上下文、上下文的改变。
四、函数的调用,函数拥有的2个方法:call、apply。
1、call, applly可以改变上下文执行对象。
2、call函数需要一个参数列表, apply允许传递一个参数或者数组。改变上下文调用环境。
3、调用对象方法, 用另一个对象替换当前对象。
查看全部 -
一、http
1、回调
2、同步、异步
3、I/O
磁盘的写入和读取
4、单线程、多线程
(1)浏览器的js是单线程的。
(2)js最基础的异步函数是setTimeout, setInterval。
(3)单线程的nodeJs,可以通过异步达到多线程的效果。
5、阻塞、非阻塞
6、事件
7、事件驱动
为某个事件注册了某个函数,但是这个函数不会立即执行,只有事件触发了才会调用回调函数。
8、基于事件驱动的回调
9、事件循环。
查看全部 -
一、http1.0的请求方法(8种):
get、post、put、delete、head、trace、options
查看全部
举报