Node基础
1.Node开发
1.1 Node是什么
Node是一个基于Chrome V8 引擎的JavaScript代码运行环境
2. Node运行环境搭建
2.1 Node.js运行环境安装
官网:https://nodejs.org/en/
· LTS = Long Term Support长期支持版 稳定版
· Current 拥有最新特性 实验版
3. Node.js快速入门
3.1 Node.js 的组成
· JavaScript由三部分组成,ECMAScript,DOM,BOM
· Node.js是由ECMAScript及Node环境提供的一些附加API组成的,包括文件、网络、路径等一些更加强
大的API.

命令行小技巧
① 按住shift键 点击鼠标右键 点击 在此处打开Powershell窗口 可以使当前命令行的工作目录跟文件 目录处于同一个目录
② 输入node 文件名开头(不用全)按TAB键 命令行会自动补全文件名字和文件路径
③ 文件需要反复执行 按shift键就可以切换到刚才执行过的命令
④ clear清除之前的命令
3.2 Node.js全局对象global
在浏览器中全局对象是window,在Node中全局对象是global。
Node中全局对象下有以下方法,可以在任何地方使用,global可以省略
· console.log() 在控制台输出
· setTimeout() 设置超时定时器
· clearTimeout() 清除超时时定时器
· setInterval() 设置间歇定时器
· clearInterval() 清除间歇定时器
4. Node.js模块化开发
4.1 JavaScript开发弊端
JavaScript在使用时存在两大问题,文件依赖 和 命名冲突。
4.2 Node.js 中模块化开发规范
· Node.js规定一个JavaScript文件就是一个模块,模块内部定义的变量和函数默认情况下在外部无法 得到
· 模块内部可以使用exports对象进行成员导出,使用require方法导入其他模块。

//a.js //在模块内部定义add方法 const add = (n1,n2) => n1 + n2; //向模块外部导出数据 exports.add = add;
//b.js //在b.js模块中导入模块a //导入模块时 后缀(.js)可以省略 const a = require('./a.js'); //调用b模块中的add方法并输出结果 console.log(a.add(10,20));
4.3 模块成员导出的另一种方式
module.exports.add = add;
exports 是 module.exports的别名(地址引用关系),导出对象最终以module.exports为准
当exports对象和moudle.exports对象指向的不是同一个对象时,以module.exports为准。
5.系统模块
5.1 Node运行环境提供的API。因为这些API都是以模块化的方式进行开发的,所以我们又称Node运行环
境提供的API为系统模块
5.2 系统模块fs
fs 文件操作系统(读取文件是硬盘操作 需要通过回调函数方式获取文件读取的结果)
const fs = require('fs');
fs.readFile('文件路径/文件名称'[,文件编码],callback);
const fs = require('fs');
//读取上一级css目录下的base.css
fs.readFile('../css/base.css','utf8',(err,doc) =>{
//如果文件读取发生错误 参数err的值为错误对象 否则err的值为null
//doc参数为文件内容
if (err == null) {
//在控制台中输出文件内容
console.log(doc);
}
})
写入文件内容
fs.writeFile('文件路径/文件名称','数据',callback);
5.3 系统模块path 路径操作
为什么要进行路径拼接
· 不同操作系统的路径分隔符不统一
· /public/unploads/avatar
· Windows上是\/
· Linux上是/
path.join('路径','路径',...)
//导入path模块 const path = require('path'); //路径拼接 path不属于耗时操作 可以通过返回值接收拼接结果 const finialPath = path.join('Node','code','03.module-a.js'); //输出结果Node\code\03.module-a.js console.log(finialPath);
5.4 相对路径 vs 绝对路径
· 大多数情况下使用绝对路径,因为相对路径有时候相对的是命令行工具的当前工作目录
· 在读取文件或者设置文件路径时都会选择绝对路径
· 使用__dirname获取当前文件所在的绝对路径
· 使用require方法的时候 可以使用相对路径
const path = require('path');
const a = require(path.join(__dirname,'03.module-a.js'));
6.第三方模块
别人写好的、具有特定功能的。能直接使用的模块即第三方模块,由于第三方模块通常都是由多个文件组成并且被放置在一个文件夹中,所以又名包。
第三方模块两种存在形式:
· 以js文件的形式存在,提供实现项目具体功能的API接口。
· 以命令行工具形式存在,辅助项目开发
6.2 获取第三方模块
npmjs.com:第三方模块的存储和分发仓库
· 下载:npm install 模块名称
· 卸载:npm uninstall package 模块名称
命令行工具:全局安装
库文件:本地安装
6.3 第三方模块 nodemon
监控文件保存操作,文件每次保存就重新执行该文件 不用每次输入命令
使用步骤
① 使用npm install nodemon -g 下载它
② 在命令行工具中用nodemon命令替代node命令执行文件
ctrl+c 在命令行工具中是 终止操作
6.4 第三方模块 nrm
nrm : npm 下载地址切换工具
npm 默认的下载地址在国外,国内下载速度慢
使用步骤
① 使用npm install nrm -g 下载它
② 查询可用下载地址列表 nrm ls
③ 切换npm下载地址 nrm use 下载地址名称

浙公网安备 33010602011771号