Nodejs学习心得沉淀(三)——核心功能模块理解

Nodejs学习心得沉淀(三)——核心功能模块理解

这篇文章你能了解到什么

  • net、fs、process模块几个必须要掌握的知识要点
  • 关于这几个模块非常好的几篇文章
  • 模块的核心机制

注意,由于已经有其它很好的文章详细介绍模块API的使用,因此本文中并不再赘述,而是更着重梳理对于每一个模块的理解和应用场景,并在贴出详细的参考资料,请谨慎食用

一、Net

如果要使用nodejs进行后端服务器的构建,那么用于创建基于流的TCP/IPC服务器、客户端的net模块就是必须学会的。

首先,我们需要了解TCP协议传输控制的流程
Nodejs学习心得沉淀(三)——核心功能模块理解_第1张图片
有以下特点

  • 面向字节流:
    你给我一堆字节流的数据,我给你发送出去,但是每次发送多少是我说了算,每次选出一段字节发送的时候,都会带上一个序号,这个序号就是发送的这段字节中编号最小的字节的编号。
  • 可靠:保证数据有序的到达对方主机,每发送一个数据就会期待收到对方的回复,如果在指定时间内收到了对方的回复,就确认为数据到达,如果超过一定时间没收到对方回复,就认为对方没收到,在重新发送一遍。
  • 面向链接: 需要对方主机在线,并建立链接

从组成来看,net模块主要包含两部分,了解socket编程的同学应该比较熟悉了:

net.Server:TCP server,内部通过socket来实现与客户端的通信。 net.Socket:tcp/本地
socket的node版实现,它实现了全双工的stream接口。

核心内容

  • 使用net创建TCP链接
  • 处理黏包问题(延迟发送、关闭Nagle算法、 封包/拆包——最常用)
  • 常用的事件(data,connect,close,end,error,timeout,drain,lookup分别是如何进行使用的)
  • 常用API理解

总结:要理解net模块,就一定要先理解TCP协议的运行机制,并且理解核心内容的问题,以下贴出文章供大家参考

核心模块——net
模块概览
饿了么面试——Network

二、fs

Node.js 高级进阶之 fs 文件模块学习
文章中作者对于一些核心的API都有代码demo

浅析node中流应用(一) 可读流(fs.createReadStream)

需要掌握的要点:

  • 权限位 mode、标识位 flag、 文件描述符 fs
  • fs中异步API和同步API
  • fs创建、增加、读取、删除文件(以及目录)的基本API操作
  • fs拷贝大文件的几种方式(基于Buffer、基于stream)
  • fs可读流操作

三、process

nodejs由于拥有非阻塞I/O的特性,所以非常适合用来做web业务开发中的高并发操作。
关于Nodejs核心概念可以参考我的这篇文章
nodejs核心概念
需要掌握的要点:

  • 进程与线程之间的关系
  • 如何使用cluster模块实现多进程架构
  • RPC高并发服务
  • process是一个全局对象(类Buffer)而不是内置模块(比如fs、path)
  • 核心API
  • 利用process来管理当前运行的模式(开发模式还是产品模式)
  • process.nextTick(fn),调度任务

Nodejs学习心得沉淀(三)——核心功能模块理解_第2张图片
感谢阅读,欢迎批评指正,希望大家能够在追求卓越中不断进步,让优秀成为一种习惯~

你可能感兴趣的:(Nodejs学习心得沉淀(三)——核心功能模块理解)