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)堆(数据结构)可以被看成一棵树,如堆排序。栈(数据结构)是一种先进后出的数据结构。

相关推荐
Vone_668 小时前
node.js 邮箱验证服务器搭建
运维·服务器·node.js
程序员拂雨9 小时前
HTTP和HTTPS模块
http·https·node.js
dgiij14 小时前
excel大表导入数据库
数据库·mysql·node.js·excel
x-cmd15 小时前
[250512] Node.js 24 发布:ClangCL 构建,升级 V8 引擎、集成 npm 11
前端·javascript·windows·npm·node.js
MaisieKim_2 天前
python与nodejs哪个性能高
前端·python·node.js
水煮白菜王2 天前
深入理解 Webpack 核心机制与编译流程
前端·webpack·node.js
程序员拂雨2 天前
Express知识框架
node.js·express
大G哥2 天前
项目中利用webpack的require.context实现批量引入/导入图片
前端·webpack·node.js
七冬与小糖3 天前
【本地搭建npm私服】使用Verdaccio
前端·npm·node.js
巴巴_羊3 天前
webpack和vite区别
前端·webpack·node.js