-
上图不上种 菊花万人捅查看全部
-
//exports是一个对象,上面可以挂载任何合法的js对象 exports.add=add //将add方法暴露出去查看全部
-
模块的流程, 1. 创建模块,2 导出模块 exports.add = function(){} 3. 加载模块, var teacher = require('./teacher.js'); 4.使用模块 teacher.add('Scott');查看全部
-
视频里有个小小的误区:<br> <br> 9分20秒开始(包括之后),在each循环内部反复的声明变量会使内存没有必要的损耗,更好的做法是延长变量的生命周期,在函数的顶部先定义,然后每次改变它们的值,由于这些变量本身的类型还是一致的,职责单一,在V8的速度上也会更快.<br> <br> 如果这些这些变量越来越大,性能损耗就会越来越明显.查看全部
-
5-12-4查看全部
-
请求方法查看全部
-
第七部查看全部
-
第六步查看全部
-
上图不上种,菊花万人捅查看全部
-
HTTP请求过程查看全部
-
bode.js建议选择最新的稳定版本。查看全部
-
_http_server.js下: parserOnIncoming实际上呢,是在271行connectionListener里面定义的 connectionListener又是250行和 'connection'事件绑定的 在_http_server.js里面找不到'connection'的定义的内容 我们知道_http_server.js是继承自net.js的(19分48秒提及) net.js下: 1330行发现 self.emit('connection',socket); 其自身被包裹在(1301行)onconnection函数里面 1150行: self._handle.onconnection = connection; 其自身被包裹在(1129行)Server.prototype._listen2 = function(...) 里 而见1182行,_listen2函数是在(1176行)function listen(...)函数里被调用的 这个listen在1113行有 Server.prototype.listen = function() { ..... 语句 在这个1113行的函数的函数体里面会调用1176行的那个listen函数 我们看最开始我们在nodejs首页里面复制到sublime里的那个创建服务器的几行代码,其中的.listen(...),其实调用的就是net.js里1113行里的这个语句。 所以当我们在sublime粘贴出的listen()方法执行后,就会在net.js里,释放一个'connection'事件。 而_http_server.js里就会因此调用与'connection'绑定好的connectionListener方法,这个connectionListener被调用后就会生成req和res两个变量并释放一个叫'request'的事件顺便带着req和res两个变量。 而'request'事件又会触发requestListener方法,这个requestListener方法就是我们在sublime里粘贴在createServer(requestListener) 方法里面的 requestListener这个部分的回调函数。查看全部
-
module exports的区别 export是module的子集 当export和module含有相同的属性的时候module会覆盖exports的属性 modile是特殊的对象类型exports是传统的模块类型查看全部
-
homebrew OS X 不可或缺的套件管理器查看全部
-
chrome://net-internals/#dns 查看chrome自身的DNS缓存查看全部
举报
0/150
提交
取消