node.js知识点总结

1、Node.js

Node. js是一个基于 Chrome v8引擎的服务器端 JavaScript运行环境;Node. js是一个事件驱动、非阻塞式I/O的模型,轻量而又高效;Node. js的包管理器npm是全球最大的开源库生态系统。

2、数据处理中的buffer:

具体详见:Node.js中使用Buffer编码、解码二进制数据详解_node.js_脚本之家

Node有一个二进制缓冲实现Buffer,这个伪类(pseudo-class)提供了一系列处理二进制数据的API,简化了那些需要处理二进制数据的任务。缓冲的长度由字节数据的长度决定,而且你可以随机的设置和获取缓冲内的字节数据。

3、为什么要用 Node. js?

(1)简单, Node. js用 JavaScript、JSON进行编码,简单好学。

(2)功能强大,非阻塞式I/O,在较慢的网络环境中,可以分块传输数据,事件驱动,擅长高并发访问。

(3)轻量级, Node. js本身既是代码又是服务器,前后端使用同一语言。

(4)可扩展,可以轻松应对多实例、多服务器架构,同时有海量的第三方应用组件。

4、Node. js有哪些全局对象?

global、 process, console、 module和 exports。

5、process有哪些常用方法?

具体解析:Node 中的 Process 理解,有哪些常用方法? - 喆星高照 - 博客园

process.stdin、 process.stdout、 process.stderr、process.on、 process.env、 process.argv、 process.arch、process.platform、 process.exit

6、console有哪些常用方法?

console.log/console. info、console.error/console.warning、console.time/console.timeEnd 、console.trace、console .table。

7、Node.js有哪些定时功能?

setTimeout/clearTimeout, setInterval/clearInterval、 setImmediate/clearImmediate、 process. nextTick。

8、Node. js中的事件循环是什么样的?

事件循环其实就是一个事件队列,先加入先执行,执行完一次队列,再次循环遍历看有没有新事件加入队列。

执行中的事件叫IO事件, setlmmediate在当前队列中立即执行,setTimout/setInterval把执行定时到下一个队列, process. nextTick在当前队列执行完,下次遍历前执行。所以总体顺序是:IO事件→ setImmediate→ setTimeout/setInterval→ process. nextTick

9、如何应用 Node. js中的 Buffer?

Buffer是用来处理二进制数据的,比如图片、MP3、数据库文件等。Buffer支持各种编码解码、二进制字符串互转。

10、Node. js中的异步和同步如何理解?

Node.js是单线程的,异步是通过一次次的循环事件队列来实现的。同步则是阻塞式的IO,这在高并发环境中会是一个很大的性能问题,所以同步一般只在基础框架启动时使用,用来加载配置文件、初始化程序等。

11、通过哪些方法可以进行异步流程的控制?

通过以下方法可以进行异步流程的控制。

(1)多层嵌套回调。

(2)为每一个回调写单独的函数,函数里边再回调。

(3)用第三方框架,如 async、q、 promise等。

12、通过哪些常用方法可以防止程序崩溃?

通过以下方法可以防止程序崩溃。

(1) try-catch-finally。

(2) EventEmitter/Stream error事件处理。

(3) domain统一控制。

(4) jshint静态检查。(参照:Node.js静态代码检查之JSHint-社区博客-网易数帆

(5) jasmine/mocha单元测试。

13、怎样调试 Node. js程序?

用node-- debug app. js和 node-inspector

14、Node .js的网络模块都有哪些?

Node. js全面支持各种网络服务器和客户端,包括TCP、HTP/ HTTPS、TCP 、UDP、DNS、tls/ssl等。

15、Noe.js是怎样支持 HTTPS、tls的?

主要通过以下几个步骤支持。

(1)使用 openssl生成公钥、私钥。

(2)服务器或客户端使用HTTPS替代HTTP。

(3)服务器或客户端加载公钥、私钥证书。

16、内置的fs模块架构由哪几部分组成?

fs模块主要由下面几部分组成。

(1) POSIX文件 Wrapper,对应操作系统的原生文件操作。

(2)文件流,fs. createReadStream和 fs.createWriteStrean。

(3)同步文件读写, fs.readFileSync和fs.writeFileSync。

(4)异步文件读写, fs.readFile和fs.writeFile。

17、读写一个文件有多少种方法?

总体来说,有4种方法。

(1) POSIX式底层读写。

(2)流式读写。

(3)同步文件读写。

(4)异步文件读写。

18、谈谈栈和堆的区别。

区别如下:

(1)栈( stack)区由编译器自动分配和释放,存放函数的参数值、局部变量的值等。

堆(heap)区一般由程序员分配和释放,若程序员不释放,程序结束时可能由OS回收。

(2)堆(数据结构)可以被看成一棵树,如堆排序。栈(数据结构)是一种先进后出的数据结构。

相关推荐
码路飞32 分钟前
Node.js 中间层我维护了两年,这周终于摊牌了——成本账单算完我人傻了
node.js
None3211 天前
【NestJs】使用Winston+ELK分布式链路追踪日志采集
javascript·node.js
Dilettante2581 天前
这一招让 Node 后端服务启动速度提升 75%!
typescript·node.js
Mr_li2 天前
NestJS 集成 TypeORM 的最优解
node.js·nestjs
UIUV2 天前
node:child_process spawn 模块学习笔记
javascript·后端·node.js
前端付豪3 天前
Nest 项目小实践之注册登陆
前端·node.js·nestjs
天蓝色的鱼鱼3 天前
Node.js 中间层退潮:从“前端救星”到“成本噩梦”
前端·架构·node.js
codingWhat3 天前
uniapp 多地区、多平台、多环境打包方案
前端·架构·node.js
小p3 天前
nodejs学习: 服务器资源CPU、内存、硬盘
node.js
Mr_li3 天前
手摸手,教你如何优雅的书写 NestJS 服务配置
node.js·nestjs