nodeJS笔记子进程
- 格式:pdf
- 大小:261.18 KB
- 文档页数:35


少年易学老难成,一寸光阴不可轻 - 百度文库
1 Node.js 概述
目录
• 简介
•
安装与更新
•
版本管理工具nvm
•
基本用法
•
REPL环境
• 异步操作
• 全局对象和全局变量
• 模块化结构
• 概述
• 核心模块
•
自定义模块
•
http模块
• 基本用法
• 处理POST请求
• 发出请求:get方法
• 发出请求:request方法
• 搭建HTTPs服务器
• 模块属性
• 模块方法 少年易学老难成,一寸光阴不可轻
- 百度文库
2 •
Buffer对象
•
异常处理
• try...catch结构
•
uncaughtException事件
• 正确的编码习惯
• 命令行脚本
• 参考链接
简介
Node是JavaScript语言的服务器运行环境。所谓“运行环境”有两层意思:首先,JavaScript语言通过Node在服务器运行,在这个意义上,Node有点像JavaScript虚拟机;其次,Node提供大量工具库,使得JavaScript语言与操作系统互动(比如读写文件、新建子进程),在这个意义上,Node又是JavaScript的工具库。
Node内部采用Google公司的V8引擎,作为JavaScript语言解释器;通过自行开发的libuv库,调用操作系统资源。
安装与更新
访问官方网站了解安装细节。
安装完成以后,运行下面的命令,查看是否能正常运行。 少年易学老难成,一寸光阴不可轻 -
百度文库
3 $ node --version# 或者$ node -v
更新node.js版本,可以通过node.js的n模块完成。
$ sudo npm install n -g$ sudo n stable
上面代码通过n模块,将node.js更新为最新发布的稳定版。
n模块也可以指定安装特定版本的node。
$ sudo n 0.10.21
版本管理工具nvm
如果想在同一台机器,同时安装多个版本的node.js,就需要用到版本管理工具nvm。
Node笔记(新⼿⼊门必看)
. 初识Node.js1.1 Node.js是什么Node.js® is a JavaScript runtime built on .Node.js不是⼀门语⾔Node.js不是库(library)、不是框架(frame)==Node.js是⼀个JavaScript运⾏环境==简单点来讲就是Node.js可以解析和执⾏JavaScript代码==以前只有浏览器可以解析和执⾏JavaScript代码==也就是说现在的JavaScript可以完全脱落浏览器来运⾏,⼀切都归功于:Node.js构建于chrome的v8引擎之上代码只是具有特定格式的字符串引擎可以帮你去解析和执⾏chrome的V8引擎是⽬前⼯⼈的解析执⾏js代码最快的node.js作者把Google Chrome中的V8引擎移植了出来,开发了⼀个独⽴的js运⾏环境浏览器中的JavaScriptECMAscriptjs基本语法BOMDOMNode.js中的JavaScript没有BOM、DOM有ECMAScript在Node这个JavaScript执⾏环境中为JavaScript提供了⼀些服务器级别的操作API例如⽂件的读写⽹络服务的构建⽹络通信http服务器等处理(相当于开发web服务器,学习对应的api即可)Node.js uses an event-driven, non-blocking I/O model that makes it lightweight and efficient.event-driven 事件驱动non-blocking I/O model ⾮阻塞IO模型(异步)lightweight and efficient. 轻量和⾼效随着课程慢慢学习会明⽩事件驱动、⾮阻塞IO模型==NodeJS以事件驱动著名,通过异步的编程达到⾼吞吐量⾼性能。==Node.js' package ecosystem, , is the largest ecosystem of open source libraries in the world.npm是世界上最⼤的开源库⽣态系统绝⼤多数JavaScript相关的包都存放在了npm上,这样做的⽬的是为了让开发⼈员更⽅便的去下载使⽤npm是基于node.js开发的包管理⼯具1.2 ==node的API参考⽂档的使⽤:==⿊点后⾯代表参数,例:request 如果是⽅法它会告诉你⽅法的参数是什么,是否可选的。上述request代表绑定函数的参数,因为它是⼀个事件因此肯定需要绑定⼀个函数,后⾯的连接为这个参数的类型,功能上能够调⽤什么变量和⽅法。加()的代表⽅法,不加()的代表属性1.3 Node.js能做什么web服务器后台命令⾏⼯具npmgit(C语⾔)hexo(node)。。。对于前端开发⼯程师来讲,接触node最多的是使⽤它的命令⾏⼯具⾃⼰写的很少,主要是使⽤别⼈第三⽅发布的webpackgulpnpm1.4 达到⽬标B/S编程模型browser-Serverback-end任何服务端技术这种BS编程模型都是⼀样,和语⾔⽆关Node只是⼀个⼯具模块化编程RequireJSSeaJScss中可以使⽤@import('⽂件路径')来实现引⼊外部⽂件以前认知的js智能通过script标签来加载在Node中可以像@import⼀样来引⽤加载JavaScript脚本⽂件Node常⽤API异步编程回调函数PromiseasyncgeneratorExpress web开发框架ECMAScript 6在课程中穿插讲解它只是⼀个新的语法。。。学习node不仅会帮助打开服务端⿊盒⼦,同时有助于学习⾼级内容Vue.jsReactangular node只有js⽂件,代码⼀般为 .js⽂件1. 创建编写js⽂件2. 打开终端(命令⾏),定位到脚本⽂件所属⽬录3. 输⼊node ⽂件名执⾏对应的⽂件,显⽰结果==注意:⽂件名不能使⽤node,最好也不要使⽤中⽂==解析执⾏JavaScript读写⽂件使⽤fs模块var fs = require('fs');
node.js知识点总结
Node.js是一个基于Chrome V8引擎的JavaScript运行时环境,它让JavaScript可以脱离浏览器运行在服务器端。以下是Node.js的一些基本知识点总结:
1. **基础知识**
- **事件循环(Event Loop)**:Node.js使用非阻塞I/O操作,通过事件循环机制来处理任务。
- **异步编程(Asynchronous Programming)**:利用回调函数(Callbacks)、Promises和async/await来处理非阻塞操作。
- **无阻塞I/O(Non-blocking I/O)**:Node.js的I/O操作默认是无阻塞的,可以提高性能,特别是在处理大量并发请求时。
2. **核心模块**
- **fs(文件系统模块)**:提供文件和目录操作的功能,如创建、读取、写入和删除。
- **http(HTTP模块)**:用于创建HTTP服务器和客户端,进行网络通信。
- **path(路径模块)**:处理文件路径相关功能。
- **process(进程模块)**:提供与Node.js运行进程相关的信息和方法。 - **buffer(缓冲区模块)**:提供处理内存中的缓冲区的功能,用于处理二进制数据。
3. **外部模块和包管理**
- **npm(Node Package Manager)**:Node.js默认的包管理工具,用于安装和管理外部模块。
- **CommonJS模块**:一种模块系统,用于在Node.js中组织代码。
- **npm仓库**:一个注册表,提供了大量的Node.js模块供开发者使用。
4. **高级话题**
- **构建工具(如Webpack、Gulp)**:用于优化、打包和转换Node.js应用程序的工具。
- **单元测试(如Mocha、Jest)**:用于测试Node.js应用程序的框架。
(完整word版)Nodejs学习文档整理
Node.js部分内容整理
——该文档用于node.js基本功能、安装步骤和环境配置的学习以及交流
一、 Node。js内容简介
1、当前的服务器程序有什么问题?
在 Java和 PHP 这类语言中,每个连接都会生成一个新线程,每个新线程可能需要 2 MB 的配套内存。在一个拥有 8 GB RAM 的系统上,理论上最大的并发连接数量是 4,000 个用户.随着您的客户群的增长,如果希望您的 Web 应用程序支持更多用户,那么,您必须添加更多服务器。当然,这会增加服务器成本、流量成本和人工成本等成本。除这些成本上升外,还有一个潜在技术问题,即用户可能针对每个请求使用不同的服务器,因此,任何共享资源都必须在所有服务器之间共享。鉴于上述所有原因,整个
Web 应用程序架构(包括流量、处理器速度和内存速度)中的瓶颈是:服务器能够处理的并发连接的最大数量。也就是说,用户请求到来后,Java等语言会为其分配一个线程来处理,此时这个线程就只能处理该请求,并且需要一直维护该请求所需要的资源直到响应才会释放资源;如果并发量很大,就会造成后面的请求处于阻塞状态.
2、NodeJS如何解决上述问题?
NodeJS采用了不同的方式来处理请求。它每接收到一个请求就会触发一个事件,并且将该事件加入到事件队列中,紧接着又以同样的方式去处理下一个请求;这样能够保证每一个请求都被及时处理(“处理”:指被加入到事件队列的过程),不会阻塞后面的请求。同时NodeJS引擎会调度事件队列中的任务,执行这些任务,最后将结果响应给用户。
即更改连接到服务器的方式,每个连接会触发一个事件,NodeJS引擎会把该事件放入到事件队列中,而不是为每个连接分配一个OS线程及其配套内存空间。(注意:维护事件队列本身也是需要成本的,而(完整word版)Nodejs学习文档整理
且事件队列越长,得到响应的事件就越长,并发量上去还是会力不从心.)