Node.js是一个可以让javascript运行在服务器端的平台。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 架构: