Node学习一:Node介绍及核心模块

NodeJs 介绍

Node.js 不是一门新的编程语言,也不是一个 JavaScript 框架,它是一套 基于V8引擎JavaScript运行环境,用来支持 JavaScript 代码的执行。

Node.js 之前,JavaScript 只能运行在浏览器中,有了 Node.js 以后,JavaScript 脱离了浏览器,像其它编程语言一样直接在计算机上使用,不受浏览器的限制。

关于V8引擎

V8引擎是Google发布的开源JavaScript引擎,是 Google Chrome 的核心。

为什么需要JavaScript引擎?

我们写的 JavaScript 代码直接交给浏览器或者 Node 执行时,底层的 CPU 是不认识的,也没法执行。CPU 只认识自己的指令集,指令集对应的是汇编代码。写汇编代码是一件很痛苦的事情。并且不同类型的 CPU 的指令集是不一样的,那就意味着需要给每一种 CPU 重写汇编代码。

JavaScript引擎 可以将 JS 代码编译为不同 CPU(Intel, ARM 以及 MIPS 等)对应的汇编代码,这样我们就不需要去翻阅每个 CPU 的指令集手册来编写汇编代码了。当然,JavaScript引擎的工作也不只是编译代码,它还要负责执行代码、分配内存以及垃圾回收。

参考文档:详解 Chrome V8 引擎

NodeJs 核心模块

assert 断言

如果表达式不符合预期,就抛出一个错误, 用来做一些异常捕捉。

Buffer 缓冲器

专门存放二进制数据的缓存区,用来做二进制数据流相关处理,主要应用在网络协议、操作数据库、处理图片、接收上传文件等。

Buffer 在全局范围内可用,但仍建议通过 importrequire 语句显式引用它。

events 事件触发器

它提供了一个属性 EventEmitter,EventEmitter 的核心是事件发射与事件监听器。

cluster 集群

node是单进程运行,对于32位系统最高可以使用512MB内存,对于64位最高可以使用1GB内存。对于多核 CPU 的计算机来说,这样的利用率很低。cluster 模块就是可以创建多个node进程集群,并且实现了进程之间的通信合作。

fs 文件系统

该模块提供了许多非常丰富并且实用的函数来访问文件系统,并与文件系统进行交互。

os 操作系统

该模块提供与操作系统相关的实用方法和属性

path

该模块提供用于处理文件和目录路径的实用程序

console, error

调试控制台和异常处理。

throw error, console.log, console.error。各种debug,调试时用到。

process 当前进程

获取当前node进程的相关信息。是一个global变量。有部分属性等价于os的属性。

child_process 子进程

注意跟process的区别。child_process 是node执行一条系统命令打开的子进程。相当于其他语言的 system, popen, exec等。直接执行一些shell脚本之类

stream 流

是node中处理流数据的一个抽象接口,主要用在传输大文件、视频、音频;通常是分段传输的。

比如在线看视频时,通过HTTP请求返回给用户视频内容。这里就会有两个比较明显的问题

1、视频文件需要全部读取完,才能返回给用户,这样等待时间会很长
2、视频文件一次全放入内存中,内存吃不消。

使用stream的方式就可以将视频文件一点一点读到内存中,再一点一点返回给用户

在node中许多模块都是 stream 的实现,比如 child_process 执行的返回结果,打开文件读取的字节流等等。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 215,923评论 6 498
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,154评论 3 392
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 161,775评论 0 351
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 57,960评论 1 290
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,976评论 6 388
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,972评论 1 295
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,893评论 3 416
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,709评论 0 271
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,159评论 1 308
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,400评论 2 331
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,552评论 1 346
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,265评论 5 341
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,876评论 3 325
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,528评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,701评论 1 268
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,552评论 2 368
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,451评论 2 352

推荐阅读更多精彩内容