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?(包管理器)
- npm是一个包
- npm是一个命令
- npm是一个网站(www.npmjs.com)
- 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包管理器
- npm 安装多个依赖时是同步安装
- yarn 安装多个依赖时是异步安装,并且安装过的依赖会进行本地缓存。
- 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版本号
版本.pngLTS:稳定版本 (推荐)
current:最新版本
12.14.1(12为大版本号,14为小版本号,1为补丁)
四、模块化
-
常用的模块化解决方案有哪些?
前端:requeireJS seajs module
后端:commonjs
-
模块化的好处:
-
便于项目的二次迭代更新
-
多人协作
-
解决类名冲突
-
引入优先级等问题
.....
-
-
所谓的模块化规范是什么?
如何将模块进行导入和导出。
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作为中间层的优势
跨系统、跨终端均可重用页面数据校验、逻辑代码,无需因为新系统、终端的接入而重写校验;
只在中间件中做一次数据校验,避免了前端做数据校验的同时后端也要做校验的重复,在有效保证数据的有效性的同时降低了团队整体的工作量;
快速响应页面,避免了浏览器长时间显示空白页面的不友好体验;
适用于高并发、短事务性数据请求处理的应用场景;
Nodejs的高性能以及显著的io优势为架构提供了高可伸缩性。
Node.js 的组合,几乎涵盖了应用开发的所有方面,其开箱即用的工具极大简化并加快了应用的开发,同时可用于任意大小和复杂度的应用开发。(eg:天猫、淘宝、网易等)