您的位置:首页 > Web前端 > Node.js

NodeJS的学习(一)

2020-02-03 01:31 423 查看

NodeJS的学习(一)

1、什么是NodeJS?

​ 1.1 Node.JS是一个基于 Chrome V8引擎的运行在服务器端的JavaScript

​ 1.2 Node.JS是一个使用了一个事件驱动、非阻塞的I/O式模型,使其轻量又高效

​ 1.3 Node.JS的npm包是全球最大的包管理网站

  • V8引擎?

      脚本引擎:运行JS脚本的一个引擎
    1. 渲染引擎:利用CSSOM对网页进行渲染的引擎
  • I/O式模型

      I:input 输入

    1. O:output 输出

  • npm是什么?

      npm是一个包,随NodeJS一起安装的一个包管理工具
    1. npm是一个网站,可以下载其他用户编写好的程序,也可以上传自己写的代码块
    2. 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目前还不够成熟,一般不会用作独立开发,主要用途有:

  1. 中间层

通常在开发应用时,基于安全考虑,在不暴露主服务器的情况下,会在客户端和主服务器之间搭建一个中间层进行通信。

  1. 小型服务

可以实现一些小型应用,或者某个功能模块

  1. 工具类

NodeJS可以用来开发一些实用工具,如webpack、gulp等等。

4、Nodejs的优势

  1. Nodejs的语法与前台JavaScript相同,因此便于前端开发入手
  2. 性能高
  3. 利于与前端代码结合,例如在做同样一个数据校验时,前后台代码可以共用,不需要单独开发。

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一样,只不过在模块定义方式和模块加载(可以说运行、解析)时机上有所不同 。

  • 点赞
  • 收藏
  • 分享
  • 文章举报
V_webster 发布了3 篇原创文章 · 获赞 0 · 访问量 37 私信 关注
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: