什么是nodeJS?
1、 nodejs是基于chromeV8引擎的js运行环境。
2、 nodejs使用了事件驱动,非阻塞式I/O模型,使其轻量又高效。
3、 nodejs中的npm包管理器,是全球最大的开源式生态系统。
引擎
每一个浏览器都会有一个内核,内核里面有引擎。
引擎分为:渲染引擎(渲染DOM树) 脚本引擎(解析脚本语言)
chromeV8引擎是目前最流行最火的一个引擎
事件驱动
观察者模式特别相似,监听某一个事件的变化,通知其程序事件的变化。
npm是什么
1、 npm是一个包管理器
2、 npm还是一个网站
3、 npm也是一个命令 npm install gulp
nodeJS与js的区别
1、运行环境的区别,js在浏览器,node在服务器。
2、js的组成部分:ECMA DOM BOM,nodejs没有dom和DOM的概念。
3、以前js有浏览器安全的限制,node里面没有浏览器的安全限制。
4、node里面提供好多底层的API,可进行文件读写,创建服务器 ....
nodejs能够做哪些事情
导入导出模块(module.exports)、创建服务器(http)、文件读写(fs)、解析url(url)
获取接口数据爬虫(http)、服务器与客户端通信(socket)、路由(pathname)
操作MongoDB数据库
node适合做高并发(I/O密集型)项目,不适合大量运算的程序(cpu密集型)。
node中模块的分类
1、 核心模块,核心模块可以通过require直接进行引入。
2、 自定义模块,需要先导出模块然后再通过require引入。
3、第三方模块,需要通过npm install 模块,再通过require进行引入。
CommonJS模块化规范
CommonJS规范即nodeJS的模块化开发遵循的规范,导出的时候必须用module.exports 或者exports,导入的时候必须用require。
如果没有被导出的话那么这个模块里面的所有方法和属性都是属于私有变量和方法。
module.exports 默认会导出一个空的对象。
模块化开发
将一个大的功能拆分成功若干个小的功能,进行分工协作。
优点:
代码复用,便于维护。
特点:
高内聚:当前功能重复使用度越高,内聚度也就越高。
低耦合:当前功能越独立,耦合越低。