首页 >> js开发 >> JavaScriptnode.js基础知识汇总
JavaScriptnode.js基础知识汇总
发布时间: 2021年1月13日 | 浏览:
| 分类:js开发
一、node介绍一、node介绍一、node介绍1.node的应用场景1.node的应用场景
工具类 gulp webpack vite (node可以让js运行在服务器)
可以做服务端 优化ssr
可以做中间层 (解决跨域问题,格式化数据)
工具类 gulp webpack vite (node可以让js运行在服务器)可以做服务端 优化ssr可以做中间层 (解决跨域问题,格式化数据)2.性能2.性能
非阻塞
异步I/O(当这个方法调用完毕后不会立即返回结果)
事件驱动(发布订阅模式)
非阻塞异步I/O(当这个方法调用完毕后不会立即返回结果)事件驱动(发布订阅模式)3.优势3.优势在Java、PHP或者.NET等服务器语言中,会为每一个客户端连接创建一个新的线程。而每个线程需要耗费大约2MB内存。也就是说,理论上,一个8GB内存的服务器可以同时连接的最大用户数为4000个左右。要让web应用程序支持的用户,就需要增加服务器的数量,而web应用程序的硬件成本当然就上升了。NodeJs不为每个客户连接创建一个新的线程,而仅仅使用一个线程。当有用户连接了,就触发一个内部事件,通过非阻塞I/O、事件驱动机制,让Node.js程序宏观上也是并行的。使用Node.js,一个8GB内存的服务器,可以同时处理超过4万用户的连接。二、node的全局对象和模块二、node的全局对象和模块二、node的全局对象和模块1.global1.globalglobal是全局对象,可以直接访问里面的属性里面有:
Buffer
process
setInterval,setTimeout,setImmediate
console
queueMicrotask
BufferprocesssetInterval,setTimeout,setImmediateconsolequeueMicrotask
2.模块
2.模块
__dirname
__filename
exports
module
require()
__dirname__filenameexportsmodulerequire()
三、process常用属性或方法三、process常用属性或方法三、process常用属性或方法process.platform 系统process.kill 杀进程process.exit 退出进程process.nextTick node中的微任务 当前执行栈的底部 优先级比promise高process.cwd() 当前的工作目录,是可变的,看命令在哪里执行 (__dirname当前文件所在的文件夹,此路径不会发生变化)process.env 环境变量(可以set,例如process.env.NODE_ENV)process.argv 执行时所带的参数四、事件环机制四、事件环机制四、事件环机制重要的三个阶段timer 存放定时器poll 轮询处理I/O回调check setImmediate如果在 I/O 回调的方法里,setImmediate优先于 timer 执行应为 poll 接下来是 checknextTick 算是一个微任务,不在事件环中在node 11 以上 宏任务与微任务的执行顺序与浏览器一样五、Buffer五、Buffer五、BufferJavaScript 语言自身只有字符串数据类型,没有二进制数据类型。但在处理像TCP流或文件流时,必须使用到二进制数据。因此在 Node.js中,定义了一个 Buffer 类,该类用来创建一个专门存放二进制数据的缓存区。在 Node.js 中,Buffer 类是随 Node 内核一起发布的核心库。Buffer 库为 Node.js 带来了一种存储原始数据的方法,可以让 Node.js 处理二进制数据,每当需要在 Node.js 中处理I/O操作中移动的数据时,就有可能使用 Buffer 库。原始数据存储在 Buffer 类的实例中。一个 Buffer 类似于一个整数数组,但它对应于 V8 堆内存之外的一块原始内存。Buffer属于global上的属性可以直接被访问,读取文件,写入(二进制)从硬盘中读取的数据都存到内存上,buffer可以和字符串相互转化定义buffer的三种方式
let buf1 = Buffer.alloc(6);
let buf2 = Buffer.from('珠峰');
let buf3 = Buffer.from([65,66,67]);
let buf1 = Buffer.alloc(6);
let buf2 = Buffer.from('珠峰');
let buf3 = Buffer.from([65,66,67]);buffer中常用的方法buffer中常用的方法
buff.toString()
buff.fill()
buff.slice()
buff.copy
Buffer.concat()
Buffer.isBuffer()
indexOf
buff.toString()buff.fill()buff.slice()buff.copyBuffer.concat()Buffer.isBuffer()indexOf以上就是node.js基础知识汇总的详细内容,关于node.js基础知识的资料请关注其它相关文章!
工具类 gulp webpack vite (node可以让js运行在服务器)
可以做服务端 优化ssr
可以做中间层 (解决跨域问题,格式化数据)
工具类 gulp webpack vite (node可以让js运行在服务器)可以做服务端 优化ssr可以做中间层 (解决跨域问题,格式化数据)2.性能2.性能
非阻塞
异步I/O(当这个方法调用完毕后不会立即返回结果)
事件驱动(发布订阅模式)
非阻塞异步I/O(当这个方法调用完毕后不会立即返回结果)事件驱动(发布订阅模式)3.优势3.优势在Java、PHP或者.NET等服务器语言中,会为每一个客户端连接创建一个新的线程。而每个线程需要耗费大约2MB内存。也就是说,理论上,一个8GB内存的服务器可以同时连接的最大用户数为4000个左右。要让web应用程序支持的用户,就需要增加服务器的数量,而web应用程序的硬件成本当然就上升了。NodeJs不为每个客户连接创建一个新的线程,而仅仅使用一个线程。当有用户连接了,就触发一个内部事件,通过非阻塞I/O、事件驱动机制,让Node.js程序宏观上也是并行的。使用Node.js,一个8GB内存的服务器,可以同时处理超过4万用户的连接。二、node的全局对象和模块二、node的全局对象和模块二、node的全局对象和模块1.global1.globalglobal是全局对象,可以直接访问里面的属性里面有:
Buffer
process
setInterval,setTimeout,setImmediate
console
queueMicrotask
BufferprocesssetInterval,setTimeout,setImmediateconsolequeueMicrotask
2.模块
2.模块
__dirname
__filename
exports
module
require()
__dirname__filenameexportsmodulerequire()
三、process常用属性或方法三、process常用属性或方法三、process常用属性或方法process.platform 系统process.kill 杀进程process.exit 退出进程process.nextTick node中的微任务 当前执行栈的底部 优先级比promise高process.cwd() 当前的工作目录,是可变的,看命令在哪里执行 (__dirname当前文件所在的文件夹,此路径不会发生变化)process.env 环境变量(可以set,例如process.env.NODE_ENV)process.argv 执行时所带的参数四、事件环机制四、事件环机制四、事件环机制重要的三个阶段timer 存放定时器poll 轮询处理I/O回调check setImmediate如果在 I/O 回调的方法里,setImmediate优先于 timer 执行应为 poll 接下来是 checknextTick 算是一个微任务,不在事件环中在node 11 以上 宏任务与微任务的执行顺序与浏览器一样五、Buffer五、Buffer五、BufferJavaScript 语言自身只有字符串数据类型,没有二进制数据类型。但在处理像TCP流或文件流时,必须使用到二进制数据。因此在 Node.js中,定义了一个 Buffer 类,该类用来创建一个专门存放二进制数据的缓存区。在 Node.js 中,Buffer 类是随 Node 内核一起发布的核心库。Buffer 库为 Node.js 带来了一种存储原始数据的方法,可以让 Node.js 处理二进制数据,每当需要在 Node.js 中处理I/O操作中移动的数据时,就有可能使用 Buffer 库。原始数据存储在 Buffer 类的实例中。一个 Buffer 类似于一个整数数组,但它对应于 V8 堆内存之外的一块原始内存。Buffer属于global上的属性可以直接被访问,读取文件,写入(二进制)从硬盘中读取的数据都存到内存上,buffer可以和字符串相互转化定义buffer的三种方式
let buf1 = Buffer.alloc(6);
let buf2 = Buffer.from('珠峰');
let buf3 = Buffer.from([65,66,67]);
let buf1 = Buffer.alloc(6);
let buf2 = Buffer.from('珠峰');
let buf3 = Buffer.from([65,66,67]);buffer中常用的方法buffer中常用的方法
buff.toString()
buff.fill()
buff.slice()
buff.copy
Buffer.concat()
Buffer.isBuffer()
indexOf
buff.toString()buff.fill()buff.slice()buff.copyBuffer.concat()Buffer.isBuffer()indexOf以上就是node.js基础知识汇总的详细内容,关于node.js基础知识的资料请关注其它相关文章!
相关文章:
- js全网小程序接口请求封装实例代码js大全
- jsvue缓存之keep-alive的理解和应用详解js大全
- js微信小程序自定义tabBar的踩坑实践记录js大全
- JavaScript工作中常用js功能汇总
- jsnuxt 路由、过渡特效、中间件的实现代码js大全
- js微信小程序中target和currentTarget的区别小结js大全
- jsnuxt静态部署打包相对路径操作js大全
- js解决nuxt页面中mounted、created、watch执行两遍的问题js大全
- js解决VUE 在IE下出现ReferenceError: Promise未定义的问题js大全
- JavaScriptNuxt.js的路由跳转操作(页面跳转nuxt-link)