NodeJS的学习(一)
NodeJS的学习(一)
1、什么是NodeJS?
1.1 Node.JS是一个基于 Chrome V8引擎的运行在服务器端的JavaScript
1.2 Node.JS是一个使用了一个事件驱动、非阻塞的I/O式模型,使其轻量又高效
1.3 Node.JS的npm包是全球最大的包管理网站
-
V8引擎?
-
脚本引擎:运行JS脚本的一个引擎
- 渲染引擎:利用CSSOM对网页进行渲染的引擎
-
I/O式模型
I:input 输入
-
O:output 输出
-
npm是什么?
-
npm是一个包,随NodeJS一起安装的一个包管理工具
- npm是一个网站,可以下载其他用户编写好的程序,也可以上传自己写的代码块
- npm是一个命令,可以对npm的所有功能进行操作
-
命令
npm install 安装package.json中的依赖
npm install 包名 --save 将依赖安装到生产环境的依赖中 简写: -S
npm install 包名 --save-dev 将依赖安装到开发环境的依赖中 简写 -D
npm unpdate 包名 升级
npm remove 包名 删除
npm search 包名 查找
npm init 初始化
npm install 包名 -g 全局安装
-
yarn:包管理工具
安装yarn: cnpm install yarn -g;
yarn install 安装package.json中的依赖
yarn add 包名 将依赖安装到生产环境的依赖中
yarn add 包名 --dev 将依赖安装到开发环境的依赖中
yarn upgrade 包名 升级
yarn remove 包名 删除
yarn init 初始化
yarn add 包名 -g 全局安装
-
npm和yarn的区别:
1、yarn安装过程是异步的而npm安装是同步的
2、yarn安装成功后会在本地缓存中生成一份,下次安装的速度会比上一次快
2、NodeJS与原生JS的区别?
NodeJS是一个服务端的语言
语法是相同的,NodeJS中没有浏览器这个概念所以不会有DOM和BOM的概念
服务端是不存在跨域的
NodeJS可以搭建服务器,访问数据库,以及进行文件的读写等操作
NodeJS中没有window和dom这个属性但是也会有自己的全局变量 process global
3、NodeJS能做什么事情?
NodeJS目前还不够成熟,一般不会用作独立开发,主要用途有:
- 中间层
通常在开发应用时,基于安全考虑,在不暴露主服务器的情况下,会在客户端和主服务器之间搭建一个中间层进行通信。
- 小型服务
可以实现一些小型应用,或者某个功能模块
- 工具类
NodeJS可以用来开发一些实用工具,如webpack、gulp等等。
4、Nodejs的优势
- Nodejs的语法与前台JavaScript相同,因此便于前端开发入手
- 性能高
- 利于与前端代码结合,例如在做同样一个数据校验时,前后台代码可以共用,不需要单独开发。
5、NodeJS的缺点
不适合做算法,只要遇到了算法(复杂的)服务器就会挂掉
6、模块化开发
开发模式 | requireJS | seaJS | ES medule | CommonJS |
---|---|---|---|---|
规范 | AMD | CMD | ES模块化规范 | NodeJS |
导出 | define | export | module.export | |
export default | ||||
导出 | require | import | require |
AM和CMD的区别?
1、AMD推崇依赖前置,在定义模块的时候就要声明其依赖的模块
2、CMD推崇就近依赖,只有在用到某个模块的时候再去require
AMD (Asynchronous Module Definition)异步模块定义。它是一个在浏览器端模块化开发的规范,由于不是JavaScript原生支持,使用AMD规范进行页面开发需要用到对应的库函数,也就是大名鼎鼎RequireJS,实际上AMD 是 RequireJS 在推广过程中对模块定义的规范化的产出。
-
requireJS主要解决两个问题
1、多个js文件可能有依赖关系,被依赖的文件需要早于依赖它的文件加载到浏览器
2、js加载的时候浏览器会停止页面渲染,加载文件越多,页面失去响应时间越长
CMD(Common Module Definition)通用模块定义,CMD规范是国内发展出来的,就像AMD有个requireJS,CMD有个浏览器的实现SeaJS,SeaJS要解决的问题和requireJS一样,只不过在模块定义方式和模块加载(可以说运行、解析)时机上有所不同 。
- 点赞
- 收藏
- 分享
- 文章举报
- nodejs学习笔记
- nodejs学习教程 nodejs express模块安装
- Ext JS学习第十六天 事件机制event(一) DotNet进阶系列(持续更新) 第一节:.Net版基于WebSocket的聊天室样例 第十五节:深入理解async和await的作用及各种适用场景和用法 第十五节:深入理解async和await的作用及各种适用场景和用法 前端自动化准备和详细配置(NVM、NPM/CNPM、NodeJs、NRM、WebPack、Gulp/Grunt、G
- 学习老外用webstorm开发nodejs的技巧--代码提示DefinitelyTyped
- Windows下从零开始学习nodejs4.X+express4.X开发--(4)NPM
- Nodejs学习笔记之Stream模块
- NodeJS学习笔记之FS文件模块
- Nodejs --我自己的学习笔记
- nodejs学习--服务器端javascript
- 我是如何学习NodeJs
- Nodejs v4.4.0API文档学习(2)Assert断言测试模块
- Nodejs Monog 学习笔记
- Nodejs学习(二)-express生成器
- nodejs大致学习
- nodejs学习笔记一 nodejs简介与安装
- nodeJS学习(4)--- webstorm/...开发 NodeJS 项目-节1
- 学习NodeJS第一天:node.js介绍
- NodeJS学习笔记之网络编程
- nodejs第二篇-学习require对象,exports对象。
- NodeJS中间件机制学习