Node.js 初学~

其技术上最大的卖点是非阻塞的I/O和基于事件的异步处理机制。

后端没有什么深入研究,一直对其不是很了解。

透过一个例子看 非阻塞 与 通常的 阻塞

var text = readFileSync("sample.html");//执行完才会进行下一步
console.log(text);

//第一个例子  必须等到 readFileSync 读完文件, 才会有值的接受 以及后来的打印。

阻塞I/O会导致线程等待,从而造成线程资源浪费,因为当应用服务器处理请求时,需要等待I/O执行结束才能继续处理。

readFile("sample.html", function(err, text) {
console.log(text); //
});
console.log("xxx");

//这个例子 可以看出   回调在这里的应用,在这里 读文件与 console.log('xxx'); 同步进行,各做各的事,等读完文件 在执行里面的console.log(text)  。

这就是非阻塞的特点。

Node有一个无需I/O等待或执行环境切换的单独执行环境。Node的I/O调用会转换为请求处理函数,当某些数据可用时事件轮询会调度事件让这些函数工作。事件轮询和事件处理程序模型差不多,就像浏览器中的JavaScript一样。程序的执行最好能快速返回到事件循环中,以便马上调度下一个可执行的任务。

编写基于Node.js的模块

Node.js遵循了CommonJS 的一些规范 比如modules。http://www.commonjs.org/

所有定义都写在 module.exports 下

由于浏览器端 没有改 对象,所以我们写之前 可以先判断下。

//这是underscore.js写的基于 node 、或者 window下的定义方法
if (typeof exports !== 'undefined') {
if (typeof module !== 'undefined' && module.exports) {
exports = module.exports = _;
}
exports._ = _;
} else {
root._ = _; //root为window
}

最新文章

  1. StoryBoard和代码结合 按比例快速兼容iPhone6/6 Plus教程
  2. 关于Stock Quant与生产内容的理解
  3. [ZOJ 1004] Anagrams by Stack (简单搜索)
  4. Google Map Api 谷歌地图接口整理
  5. Android 图片加载[常见开源项目汇总]
  6. ora_reco_070361 hs message to agent event 等待事件
  7. python--data type
  8. 团队作业4---第一次项目冲刺(ALpha)版本 第七天
  9. ui设计未来前景怎么样?ui设计这个行业怎么样?
  10. 不root手机的情况下查看Android数据库
  11. 读懂 Gradle 的 DSL
  12. VS Code 常用插件
  13. 新建Eclipse的web工程目录结构和MyEclipse相似的设置
  14. docker安装并修改Nginx镜像
  15. Java高级面试题解析(一)
  16. Java 中 LinkedList 和 ArrayList 的区别
  17. office web app server部署和简单操作
  18. day32
  19. pthread之线程堆栈
  20. 一类dp的网格模型

热门文章

  1. IP校验和
  2. 主计划MPS禁止改写项目编号(PROJECT)
  3. 解密电子书之一:电子墨水(eink)
  4. Delphi判断一个文件是不是JPG图片
  5. Android 屏幕适配方式
  6. POJ 2400 最小权匹配
  7. rsyslog start with
  8. vs2010调试快捷键
  9. 论try/catch的重要性,我们经常遇到代码出现无法调试的错误,程序退出的时候崩溃。这跟我们代码日常保护的习惯息息相关。
  10. Problem G: If We Were a Child Again