同步和阻塞:这两个术语可以互换使用,指的是代码的执行会在函数返回之前停止.如果某个操作阻塞,那么脚本就无法继续,这意味着必须等待. 异步和非阻塞:这两个术语可以互换使用,指的是基于回调的.允许脚本并行执行操作的方法.脚本无需等待某个操作的结果才能继续前进,因为操作结果会在事件发生时由回调来处理.使用异步方法,操作无需一个接一个地发生(自己注:就是并行了). @1 同步和阻塞的例子:     function sleep(milliseconds) {       var start = new…
http://www.nodeclass.com/articles/39274 一.node.js的作用 I/O的意义,(I/O是输入/输出的简写,如:键盘敲入文本,输入,屏幕上看到文本显示输出.鼠标移动,在屏幕上看到鼠标的移动.终端的输入,和看到的输出.等等) node.js想解决的问题,(处理输入,输入,高并发 .如 在线游戏中可能会有上百万个游戏者,则有上百万的输入等等)(node.js适合的范畴:当应用程序需要在网络上发送和接收数据时Node.js最为适合.这可能是第三方的API,联网设…
虽然 Node.js 是单线程的,但是在融合了libuv后,使其有能力非常简单地就构建出高性能和可扩展的网络应用程序. 下图是 Node.js 的简单架构图,基于 V8 和 libuv,其中 Node Bindings 为 JavaScript 和 C++ 搭建了一座沟通的桥梁,使得 JavaScript 可以访问 V8 和 libuv 向上层提供的 API. 本系列所有的示例源码都已上传至Github,点击此处获取. 一.术语解析 接下来会对几个与 Node.js 相关的术语做单独的解析,其中…
Node.js到处使用回调,尤其在有I/O(输入/输出)操作的地方. 下面是在一个Node.js中使用filesystem模块中从磁盘上读入文件内容示例一: var fs = require('fs'); fs.redFile('somefile.txt', 'urf8', function (err, data) { if (err throw err); console.log(data); }); 以下是所发生的事情: 1.fs(filesystem)模块被请求,以便在脚本中使用 2.将文…
章节 Node.js NPM 介绍 Node.js NPM 作用 Node.js NPM 包(Package) Node.js NPM 管理包 Node.js NPM Package.json NPM作用很多,下面列出了最基本的几点: NPM 可以让我们充分利用其他开发人员的工作,将其他包轻松合并到我们的项目中 NPM 帮助下载各种独立的工具,可以立即使用 使用npx,你甚至可以不下载包,就直接运行它 NPM 创建各种组织来协调包的开发和维护. NPM 可以帮助组建虚拟团队,甚至可以将代码限制到…
Node.js标准的回调函数:第一个参数代表错误信息,第二个参数代表结果. function (err, data) 当正常读取时,err参数为null,data参数为读取到的String.当读取发生错误时,err参数代表一个错误对象,data为undefined. if (err) { // 出错了 } else { // 正常 }…
Node.js是基于事件驱动编程.异步函数随处可见,其中不乏一些常用库的方法.本例就以js中最常见的setTimeout的为例,试图改善一下回调的书写. 先来看一段伪代码: 我们实现一个需求,每隔一段时间打印一段字符串,按照一般的同步设计思维,那么大概是这个样子: ; i < ; i++) { sleep(i); printf("out:%d", i); } 但是在js中可就没这么简单了.首先,类似sleep的setTimeout函数睡眠之后的事件就在回调当中 setTimeou…
和其他服务器端语言相比,貌似node.js 对于异常捕捉确实非常困难. 首先你会想到try/catch ,但是在使用过程中我们会发现并没有真正将错误控制在try/catch 语句中. 为什么? 答案是这样的: node.js 是异步IO执行,所以我们将try/catch 反正异步回调函数中,当出现一个异常的时候,我们try 拿到这个错误时应该错过了当前程序运行堆栈, 而在node.js原生的uncaughtException 处理事件却挂在 process 对象上,OMG,你可想而知,如果一个异…
@by Ruth92(转载请注明出处) 第4章 异步编程 Node 能够迅速成功并流行起来的原因: V8 和 异步 I/O 在性能上带来的提升: 前后端 JavaScript 编程风格一致 一.函数式编程 高阶函数 定义:是指把函数作为参数,或是将函数作为返回值的函数. 应用:事件处理,数组的迭代和归并方法等. 偏函数用法 偏函数用法:是指创建一个调用另外一个部分(参数或变量已经预置的函数)的函数的用法. 偏函数:通过指定部分参数来产生一个新的定制函数的形式就是偏函数. var toString…
@by Ruth92(转载请注明出处) 第3章 异步I/O Node 的基调:异步 I/O.事件驱动.单线程. Node 不再是一个服务器,而是一个可以基于它构建各种高速.可伸缩网络应用的平台. Node 是全方位的,既可以作为服务端去处理客户带来的大量并发请求,也能作为客户端向网络中的各个应用进行并发请求. Web → 网,Node → 网络中灵活的节点 事件循环是异步实现的核心,它与浏览器中的执行模型基本保持了一致.Node 正是依靠构建了一套完善的高性能异步 I/O 框架,打破了 Java…