Node.js

1.Node.js是什么

Node.js诞生于2009年,由joyent的员工Ryan Dahl开发而成,目前官网最新版本已经更新到12.0.0版本,最新稳定的是10.15.3。Node.js不是一门语言也不是框架,它只是基于Google V8引擎的JavaScript运行时环境,同时结合Libuv扩展了JavaScript功能,使之支持io、fs等只有语言才有的特性,使得JavaScript能够同时具有DOM操作(浏览器)和I/O、文件读写、操作数据库(服务器端)等能力、是目前最简单的全栈式语言。

Node.js的包管理工具、npm已经成为世界开源包管理中最大的生态、功能强大、目前单月使用者接近1000万

 

Node不同官网 :https://nodejs.org/en/  英文全面网

Node中文网: http://nodejs.cn/   中文网

2.Node.js特点(记住三句话)

  • 事件驱动
  • 非阻塞IO模型(异步)
  • 轻量和高效

 

回顾模块化

1.CommonJS------双端(1.浏览器;2.服务器) ------ 暴露: module.exports = ??? exports.xxxx = ??? 浏览器不认识require------Browserify2

2.AMD ---- RequireJS ----- define (['asdas','asda'],function(){return ???}
)

3.CMD --- sea.js ---- define(function(require,module,exports){})

4.ES6 ----- 前端人员主要使用的 ------ babel -----Browserify

 

Node.js之父:Ryan Dahl (瑞安 · 达尔)

 

Node.js是一个基于 chrome V8 引擎的 JavaScript 运行环境

 

 Node.js有什么特点

1.异步非阻塞的I/O (I/O线程池)

2.特别适用于I/O密集型应用 (对比传统java 服务器)

3.事件循环机制  (独有的一套,与浏览器不一样)

4.单线程(成也单线程,败也单线程)

5.跨平台  (几乎常见的语言都支持)

 

简单Web交互模型

 

 

不足之处

1.回调函数嵌套太多、太深(俗称回调地狱)

2.单线程,处理不好CPU密集型任务

 

I:input : 键盘、扫描仪、摄像头

O:output : 显示器、打印机

设备

 

I/O操作:    input : 写   output: 读  (文件)

瓶颈:硬盘

演化:

I/O操作:   (文件读写、数据的读写)

      1.input:写   output: 读  (文件)

      2.数据库的操作: 读、写

 

I/O密集型: 频繁操作I/O

 

单线程运行 "东西"  :如果想实现 "异步" ,就必须有自己的 “事件循环模型”

 

跨平台:  1.js(跨平台) -----> js引擎 -----> 设计? 谷歌等

      2.java(跨平台) ------> JVM虚拟机 ------

        3.Node.js ----->

 

 

 

package包

Node.js的包基本遵循CommonJS规范,包将一组相关的模块组合在一起,形成一组完整的工具,包由包结构和包描述文件两个部分组成。

1、包结构:用于组织包中的各种文件

2、包描述文件:描述包的相关信息,以供外部读取分析

 

包结构

包实际上就是一个压缩文件,解压以后还原为目录,符合CommonJS规范的目录,应该包含如下文件和文件夹:

1、package.json 描述文件----描述文件(包的"说明书"、必须要有)

2、bin 可执行二进制文件----可执行二进制文件

3、lib js代码-------经过编译后的js代码

4、doc 文档------(说明文档、修复文档、版本变更记录文档)

5、test 单元测试------一些测试报告

posted @ 2022-07-04 09:05  奥摩前端  阅读(112)  评论(0编辑  收藏  举报