NodeJS 基本概念精简

什么是NodeJS

官方说法:

  • NodeJS是一个基于Chrome V8引擎的JavaScript运行环境

  • Node使用事件驱动,以及非阻塞的I/O式模型使其轻量又高校;

  • NodeJS的npm是全球最大的包管理网站(垃圾管理网站)

简单的来说:

  • NodeJS其实就是运行在服务端的JavaScript代码
什么是I/O模型

I:input

O:output

您细品

什么是引擎

每一个浏览器都有一个内核,每个内核都会有一个引擎,引擎又分为脚本引擎(运行脚本)和渲染引擎(DOM)。Chrome V8引擎是最好的脚本引擎

NodeJS底层也是基于C去写的

NodeJS 和 JavaScript的区别

  1. 浏览器的JS:主要是DOM操作,不能操作系统底层的API

    有些Node的API是JS无法使用的: process、global等

  2. NodeJS:可以调用系统底层的API,例如文件的读写、服务器的创建、服务器与服务器之间的交互

    有些JS的API是NodeJS无法使用的,例如操作DOM、BOM的API

NodeJS的主要用途

NodeJS在工作当中的主要用途是用来处理高并发

NodeJS做中间层来处理高并发时,服务端与服务端之间进行通信的时候不会涉及到跨域

缺点:NodeJS不适合做大量运算 只要遇到了复杂的运算,服务就会挂掉

NodeJS中如何运行JS文件,以及如何进行JS语法的编译

运行JS文件:node 文件名称

编译:node交互模式 => 命令行中输入node

​ 退出:ctrl+c 2次 || Ctrl+d 1次

npm

  1. 什么是npm:包管理器

    • npm 是一个包
    • npm 是一个命令
    • npm 是一个网站:[https://www.npmjs.com/](https://www.npmjs.com/)
  2. npm常用的命令

    命令 功能
    npm install 包名 -g 全局安装
    npm install 找到包中的package.json文件 安装package.json文件中的依赖
    npm install 包名 --save 将包安装到生产环境中
    npm install 包名 --save-dev 将包安装到开发环境中
    npm uninstall 包名 卸载
    npm update 包名 更新包
    npm search 包名 查找包
    npm info 包名 查看包的信息
    npm cache clear 清除缓存
  3. npm是国外的网站,因此下载的时候速度比较慢,有时会出错,所以推荐使用cnpm、nrm

    npm install cnpm -g

    cnpm install nrm -g

  4. nrm:源管理器

    cnpm install nrm -g

    nrm ls 列出所有镜像源

    nrm use taobao 设置镜像源

yarn 包管理器

yarn与npm的区别:

  1. npm安装多个依赖的时候是同步安装
  2. yarn安装多个依赖的时候是异步安装、yarn安装过的依赖会进行本地缓存、yarn会对安装过的包进行版本的锁定

安装:cnpm install yarn -g

常用命令:

npm命令 yarn命令
npm install 包名 -g yarn add 包名 global
npm install yarn install
npm install 包名 --save yarn add 包名
npm install 包名 --save-dev yarn add 包名 --dev
npm uninstall 包名 yarn remove 包名
npm update 包名 yarn upgrade 包名
npm search 包名 yarn search 包名
npm info 包名 yarn info 包名
npm cache clear yarn cache clear
yarn global bin:全局安装文件的位置

Node版本号

LTS:稳定版本(推荐)

current:最新版本

12.14.0:

​ 第一个版本号:大版本号

​ 第二个:小版本好

​ 第三个:补丁

NodeJS模块化

  1. 前后端模块化的解决方案:NodeJS用commonjs规范

    • requireJS:前端
    • seajs:前端
    • module:前端
    • commonjs:后端
  2. 模块化的好处

    1. 便于项目的二次迭代更新
    2. 便于多人协作
    3. 解决类名冲突
    4. 解决引入优先级的问题
    5. ... ...
  3. 模块化的规范是什么

    模块化的规范是如何将模块进行导入和导出

    其中,NodeJS中的commonjs规范 => module.exports:导出模块,require:导入模块

NodeJS中的模块分类
  1. 内置模块

    http、path、querystring...

    内置模块不需要通过npm下载或者路径引入等操作,自身携带的

    const http = require('http')

  2. 自定义模块

    通过module.exports进行导出 require进行引入

  3. 第三方模块

    需要npm进行安装,然后进行引入:第三方模块都是在node_modules中的

择日排版

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

推荐阅读更多精彩内容

  • 我是紫柠檬Nancy,今年34岁,是两个孩子的妈妈:老大6岁半,老二3岁。在2018年元旦之前,我还是一名朝九晚五...
    紫柠檬Nancy阅读 1,434评论 7 12
  • 生命本是一场漂泊的旅途, 每次遇见都是一个美丽的意外。 珍惜每一个可以称作朋友的人, 感恩所有遇见,感恩有您!
    宋菁菁阅读 227评论 0 0
  • 罗宾打开了地图,先指到了大坑的那个地方,然后又指着大坑后面继续延伸的那条黑色的小线,一直慢慢的往后看着,找到了他们...
    小绘君阅读 54评论 0 1
  • 今晚有点时间,突然想起接下来的课有点紧,应该先解决文言文。那就得上蒲松龄的《狼》了。 《狼》系列有三篇,教材选的是...
    会思想的蒹葭阅读 2,679评论 0 3