Node.js_入门篇(一)

Node.js_入门篇(一)

Node.js.png

本篇文章先介绍一些简单、基础但又比较重要的概念:

一、什么是Node.js?

官方解释:

Node.js使用了一个事件驱动,以及非阻塞的I/o式模型使其轻量又高效。

Node.js是一个基于Chrome V8引擎的Javascript运行环境。

Node.js的npm是全球最大的包管理网站。

简单地说:

Node.js就是运行在服务端的Javascript代码

  • 非阻塞式

    非阻塞模式是指利用socket事件的消息机制,Server端与Client端之间的通信处于异步状态。

  • 什么是I/O式模型

    I:input O:output

    关于文件的读写、网络读取等操作

  • 引擎

    每个浏览器都有一个内核,每个内核都有一个引擎。而引擎又分为脚本引擎(运行脚本)和渲染引擎(DOM)。

    chromeV8引擎是目前最好的一个脚本引擎。

二、Node.js与浏览器的JavaScript的有什么区别?

  • 浏览器的JS

    主要是用来进行一些DOM操作,除此之外浏览器中的JS是不能够操作系统底层的API

  • Node.js

    可以调用底层的API。例如:文件的读写、服务器的创建、服务于服务器之间的交互等操作

    在Node.js中有些js的API是无法使用的 例:DOM BOM

    浏览器中的JS也有些Node的API是无法使用的,例:process globale等

  • Node.js的主要用途是什么?

    Node.js在工作当中的主要用途是用来处理高并发(通过中间层来处理高并发)

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

    服务端与服务端之间进行通讯的时候是不会涉及到跨域的

  • Node中如何运行JS文件,如何进行JS语法的编译?

    运行JS文件:node 文件名

    编译:通过Node交互模式 => cmd中输入node

    退出:两次【Ctrl+C】或一次【Ctrl+D】

三、npm

  • 什么是npm?(包管理器)

    1. npm是一个包
    2. npm是一个命令
    3. npm是一个网站(www.npmjs.com)
    4. npm网站的服务器是在国外,下载一些依赖的速度较慢,因此推荐使用cnpm、nrm
  • npm常用的命令

    常用命令 相关解释
    npm init -y 生成的默认的package.json
    npm install 找到包中的package.json文件,并安装默认的依赖
    npm intall 包名 -g 全局安装
    npm install 包名 - -save(或npm install 包名 -S) 将当前包安装到生产环境中
    npm install 包名 - -save-dev(或npm install 包名 -D) 将当前包安装到开发环境中
    npm uninstall 包名 卸载包
    npm update 包名 更新包
    npm search 包名 查看包的信息
    npm cache clear 清除缓存
    npm addUser
    npm login
    npm publish
    …… ……
  • nrm源管理器

    安装方式:cnpm install nrm -g

    nrm ls 列出所有的镜像源

    nrm use 源名 切换镜像源

  • yarn包管理器

    1. npm 安装多个依赖时是同步安装
    2. yarn 安装多个依赖时是异步安装,并且安装过的依赖会进行本地缓存。
    3. yarn global bin 查看全局文件的位置
    • yarn常用的命令对比

      npm常用命令 yarn常用命令
      npm install 包名 -g yarn add 包名
      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
  • Node.js版本号

    版本.png

    LTS:稳定版本 (推荐)

    current:最新版本

    12.14.1(12为大版本号,14为小版本号,1为补丁)

四、模块化

  • 常用的模块化解决方案有哪些?

    前端:requeireJS seajs module

    后端:commonjs

  • 模块化的好处:

    1. 便于项目的二次迭代更新

    2. 多人协作

    3. 解决类名冲突

    4. 引入优先级等问题

    ​ .....

  • 所谓的模块化规范是什么?

    如何将模块进行导入和导出。

    common:module.exports导出模块;require进行导入模块。

  • Node.js中的模块划分为哪几类?

    • 内置模块(http path querystring)

      内置模块使用时不需要通过npm下载或者路径引入等操作。

      eg:const http = require(“http”);

    • 自定义模块

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

    • 第三方模块

      通过npm进行安装,然后引入,第三方模块都安装在node_modules中。

五、Node.js作为中间层

由于传统的前后端分离出现的性能问题,大量网站重新定义了前后端,在服务器与浏览器之间增加了一个中间层:

  • 使用Node.js作为中间层的优势
  1. 跨系统、跨终端均可重用页面数据校验、逻辑代码,无需因为新系统、终端的接入而重写校验;

  2. 只在中间件中做一次数据校验,避免了前端做数据校验的同时后端也要做校验的重复,在有效保证数据的有效性的同时降低了团队整体的工作量;

  3. 快速响应页面,避免了浏览器长时间显示空白页面的不友好体验;

  4. 适用于高并发、短事务性数据请求处理的应用场景;

  5. Nodejs的高性能以及显著的io优势为架构提供了高可伸缩性。

    Node.js 的组合,几乎涵盖了应用开发的所有方面,其开箱即用的工具极大简化并加快了应用的开发,同时可用于任意大小和复杂度的应用开发。(eg:天猫、淘宝、网易等)

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

推荐阅读更多精彩内容