Node基本知识&插件使用

Nodejs基础知识

目标

  • 能够知道Node以及Node.js是什么
  • 能够安装Node运行环境
  • 能够知道系统环境变量PATH的作用
  • 能够使用Node环境执行代码

Node开发的概述

为什么要学习服务器端开发基础

  • 能够和后端程序员更加紧密的配合
  • 站业务逻辑前置,学习前端技术需要后端技术支撑(Ajax)
  • 扩宽知识视野,能够站在更高的角度审视整个项目

服务器端开发要做的事情

  • 实现 站的业务逻辑
  • 数据的增删改查

为什么选择Node

  • 使用JavaScript语法开发后端应用
  • 一些公司要求前端工程师掌握Node开发
  • 生态系统活跃,有大量开源库可以使用
  • 前端开发工具大多基于Node开发

Node是什么(★★★)

Node是一个基于Chrome V8引擎JavaScript代码运行环境

[外链图片转存失败(img-0e2sHjd1-1568032893241)(images/chrome.png)]

[外链图片转存失败(img-FTSUzays-1568032893242)(images/huanjing.png)]

运行环境

  • 浏览器(软件)能够运行JavaScript代码,浏览器就是JavaScript代码的运行环境
  • Node(软件)能够运行JavaScript代码,Node就是JavaScript代码的运行环境

Node.js是什么(★★★)

  • Node.js是运行在代码环境之上的语言
  • JavaScript代码运行在浏览器中,JavaScript是语言,浏览器是运行环境
  • JavaScript代码运行在Node 中,Node.js是语言,Node是运行环境

Node.js环境搭建(★★★)

Node.js环境安装

官 :https://nodejs.org/en/

[外链图片转存失败(img-NOxitl1Z-1568032893243)(images/node-v.png)]

  • LTS = Long Term Support 长期支持版 稳定版
  • Current 拥有最新特性 实验版

[外链图片转存失败(img-azfnjpup-1568032893244)(images/node-v2.png)]

  • 双击运行文件,选择相应的安装目录,下一步即可
  • 安装完成后,window健+r 弹出运行窗口,输入cmd或者powershell打开命令行窗口,输入 node -v 来查看是否安装成功

Node环境安装失败解决办法

错误代 2502、2503

[外链图片转存失败(img-qH78vP7R-1568032893246)(images/error1.png)]

**失败原因:**系统帐户权限不足。

解决办法:

  • 以管理员身份运行powershell命令行工具
  • 输入运行安装包命令 msiexec /package node安装包位置
执行命令 错

[外链图片转存失败(img-gXnvtROs-1568032893248)(images/error2.png)]

**失败原因:**Node安装目录写入环境变量失败

**解决办法:**将Node安装目录添加到环境变量中

PATH环境变量

存储系统中的目录,在命令行中执行命令的时候系统会自动去这些目录中查找命令的位置

[外链图片转存失败(img-WCVeB6lW-1568032893249)(images/path.png)]

Node.js快速入门(★★★)

Node.js 的组成

  • JavaScript 由三部分组成,ECMAScript,DOM,BOM。
  • Node.js是由ECMAScript及Node 环境提供的一些附加API组成的,包括文件、 络、路径等等一些更加强大的 API。

[外链图片转存失败(img-htgJxPbB-1568032893252)(images/zucheng.png)]

Node.js基础语法

  • 所有ECMAScript语法在Node环境中都可以使用
  • 在Node环境下执行代码,使用Node命令执行后缀为.js的文件即可
  • 切换文件目录比较麻烦,可以当当前工作空间里面按住 shift健 加鼠标右键,选择 此处打开命令窗口

[外链图片转存失败(img-lUGDY5kl-1568032893253)(images/node-jichu.png)]

Node.js全局对象 global

在浏览器中全局对象是window,在Node中全局对象是global

Node中全局对象下有以下方法,可以在任何地方使用,global可以省略

  • console.log() 在控制台中输出
  • setTimeout() 设置超时定时器
  • clearTimeout() 清除超时时定时器
  • setInterval() 设置间歇定时器
  • clearInterval() 清除间歇定时器

模块加载及包

目标

  • 能够使用模块导入导出方法
  • 能够使用基本的系统模块
  • 能够使用常用的第三方包
  • 能够说出模块的加载机制
  • 能够知道package.json文件的作用

Node.js模块化开发

JavaScript开发弊端

JavaScript在使用时存在两大问题,文件依赖命名冲突

[外链图片转存失败(img-F0q4N8xd-1568032893256)(images/jsbiduan.png)]

生活中的模块化开发

[外链图片转存失败(img-3jjHjYSk-1568032893259)(images/mokuaihua1.png)]

软件中的模块化开发

[外链图片转存失败(img-SZv6c9Wy-1568032893261)(images/mokuaihua2.png)]

Node.js中模块化开发规范(★★★)

  • Node.js规定一个JavaScript文件就是一个模块,模块内部定义的变量和函数默认情况下在外部无法得到
  • 模块内部可以使用exports对象进行成员导出, 使用require方法导入其他模块

[外链图片转存失败(img-sJSYKjxr-1568032893263)(images/mokuaihua3.png)]

模块导出第一种方式:示例代码

A模块

B模块

模块成员导出的另一种方式:示例代码

A模块

B模块

两种导出的区别

exportsmodule.exports的别名(地址引用关系),导出对象最终以module.exports为准,所以我们在使用的时候就需要去注意,如果 exportsmodel.exports 指向的是同一个对象,那么不会出问题

Node.js 系统模块

什么是系统模块

Node运行环境提供的API. 因为这些API都是以模块化的方式进行开发的, 所以我们又称Node运行环境提供的API为系统模块

[外链图片转存失败(img-3KKX7Lr5-1568032893267)(images/xitongmokuai.png)]

系统模块fs 文件操作(★★★)

f:file 文件 ,s:system 系统,文件操作系统

读取文件方法

1.获取系统 fs 模块

2.通过模块内部的readFile读取文件内容

写入文件方法

1.获取系统 fs 模块

2.通过模块内部的 writeFile 写入内容

系统模块path 路径操作(★★★)

为什么要进行路径拼接

  • 不同操作系统的路径分隔符不统一
  • /public/uploads/avatar
  • Windows 上是 /
  • Linux 上是 /

路径拼接语法

示例代码:

1.导入path模块

2.路径拼接

相对路径VS绝对路径

  • 大多数情况下使用绝对路径,因为相对路径有时候相对的是命令行工具的当前工作目录
  • 在读取文件或者设置文件路径时都会选择绝对路径
  • 使用**__dirname**获取当前文件所在的绝对路径

第三方模块

什么是第三方模块

别人写好的、具有特定功能的、我们能直接使用的模块即第三方模块,由于第三方模块通常都是由多个文件组成并且被放置在一个文件夹中,所以又名包。

第三方模块有两种存在形式:

  • 以js文件的形式存在,提供实现项目具体功能的API接口。
  • 以命令行工具形式存在,辅助项目开发

使用命令行进行第三方模块的下载和删除

使用 npm 命令:npm (node package manager) : node的第三方模块管理工具

  • 下载:npm install 模块名称
  • 卸载:npm unintall package 模块名称

全局安装与本地安装

  • 命令行工具:全局安装
  • 库文件:本地安装

第三方模块- nodemon 模块

nodemon是一个命令行工具,用以辅助项目开发。
在Node.js中,每次修改文件都要在命令行工具中重新执行该文件,非常繁琐,而使用这个模块,可以帮我们监听这个文件的修改,只要修改保存了,就会重新执行一次。

使用步骤
  • 使用npm install nodemon –g 下载它
  • 在命令行工具中用nodemon命令替代node命令执行文件

第三方模块- nrm 模块

nrm ( npm registry manager ):npm下载地址切换工具;

npm默认的下载地址在国外,国内下载速度慢

使用步骤
  • 使用npm install nrm –g 下载它
  • 查询可用下载地址列表 nrm ls
  • 切换npm下载地址 nrm use 下载地址名称

第三方模块- Gulp模块

基于node平台开发的前端构建工具,将机械化操作编写成任务, 想要执行机械化操作时执行一个命令行命令任务就能自动执行了,用机器代替手工,提高开发效率。

Gulp能做什么

  • 项目上线,HTML、CSS、JS文件压缩合并
  • 语法转换(es6、less …)
  • 公共文件抽离
  • 修改文件浏览器自动刷新

Gulp使用

  • 使用npm install gulp下载gulp库文件
  • 在项目根目录下建立gulpfile.js文件
  • 重构项目的文件夹结构 src目录放置源代码文件 dist目录放置构建后文件
  • 在gulpfile.js文件中编写任务.
  • 在命令行工具中执行gulp任务
Gulp提供的方法
  • gulp.src():获取任务要处理的文件
  • gulp.dest():输出文件
  • gulp.task():建立gulp任务
  • gulp.watch():监控文件的变化

如果需要执行 gulp里面某一个任务,需要使用gulp给我们提供的命令行工具

  • 下载命令: npm install gulp-cli -g
  • 使用命令:gulp 任务名称

简单入门:

1.创建一个文件夹

[外链图片转存失败(img-nfFLBfjN-1568032893274)(images/gulp-01.png)]

2.创建gulpfile.js 文件

[外链图片转存失败(img-xc3WKL7o-1568032893276)(images/gulp-02.png)]

3.下载Gulp模块

[外链图片转存失败(img-Mh9byO50-1568032893277)(images/gulp-03.png)]

4.把项目源代码放入到当前文件夹中

5.创建一个文件夹,放处理好的文件

6.在gulpfile.js里面编写代码

6.使用命令行来执行 first任务

Gulp插件

  • gulp-htmlmin :html文件压缩
  • gulp-csso :压缩css
  • gulp-babel :JavaScript语法转化
  • gulp-less: less语法转化
  • gulp-uglify :压缩混淆JavaScript
  • gulp-file-include 公共文件包含
  • browsersync 浏览器实时同步
插件的使用

1.下载插件

2.引入模块

3.编写任务

以下就是项目打包上线的时候需要做的一些工作
html任务 示例demo

目标

  • html文件中代码的压缩操作

  • 抽取html文件中的公共代码

1.下载插件

npm install gulp-htmlmin

npm install gulp-file-include

2.引入模块

3.编写任务

CSS 任务 示例demo

目标

  • less语法转换

  • css代码压缩

1.下载插件

npm install gulp-csso

npm install gulp-less

2.引入模块

3.编写任务

声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2019年8月7日
下一篇 2019年8月7日

相关推荐