Node.js是一个能够让javascript执行在server端的平台。node.js是一个为实时web应用开发而诞生的平台,它考虑到了实时响应/超大规模数据要求下架构的可扩展性。它採用了单线程,异步石IO,事件驱动式的设计模式。
Node.js有着强大而灵活的包管理器(node package manager)npm
node.js 架构设计:1,异步式I/O,事件驱动
2,V8引擎作为javascript引擎
3。高效的libev事件驱动库
4,高效的libeio异步I/O库
CommonJS:javascript规范API
Node.JS的事件循环机制:
node.js的程序由事件循环開始,到事件循环结束,全部的逻辑都是事件的回调函数。所以node.js始终在事件循环中。程序入口就是事件循环第一个事件的回调函数。下图为事件循环图
Node.js提供了require函数来调用其它模块,并且模块都是基于文件系的,机制十分简单。
什么是模块:模块是node.js的应用程序的基本组成部分,文件和模块是一一相应的。换言之,一个Node.js文件就是一个模块,这个文件可能是javascript代码,JSON或者编译过的C/C++扩展。
Node.js提供了exports和require两个对象,当中exports是模块公开的接口,require是从外部获取一个模块的接口。即所获取模块的exports对象。
单次载入:require不会反复载入模块。也就是说不管调用多少次require。获得的模块都是同一个。
Express 架构: