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