一、 几个命令行常用的快捷键
shift + 鼠标右键 可以直接在文件目录下打开命令行工具
tab 补充完整命令
clear 清除上面命令行
二、 Node.js模块化开发
JavaScript开发弊端:文件依赖和命名冲突
一个功能就是一个模块,多个模块可以组成完整应用,抽离一个模块不会影响其他功能的运行
node.js模块化开发规范:
(1)node.js规定一个JavaScript就是一个模块,模块内部定义的变量和函数默认情况下在外部无法得到
(2)模块内部可以使用exports对象进行成员导出,使用require方法导入其他模块,导出时可以省略导出文件的后缀名(.js)。还有一种导出方法module.exports。两种模块导出的方法的区别与联系:exports是module.exports的别名(地址引用关系),若exports和module.exports的导出对象不同,那么最终以module.exports为准。
导出文件
导入
三、 系统模块
node环境提供的API,因为这些API都是以模块化的方式进行开发的,所以我们又称node运行环境提供的API为系统模块。
(一)文件操作系统fs(f:file s:system)
- 读取文件内容 fs.readFile(‘文件路径/文件名称’ [,‘文件编码’],callback);
第二个参数用中括号,代表可选参数
运用如下:
//1.通过模块的名字对模块进行引用
const fs = require('fs')
//2.通过模块内部的readFile读取文件内容
fs.readFile('../01.helloword.js', 'utf8', (err, doc) => {
//如果文件读取错误err 是一个对象 包含错误信息
//如果文件读取正确 err是null
//doc 是文件读取结果
if(err == null) {
console.log(doc);
}
})
- 文件写入内容 fs.writeFile(‘文件路径’, ‘写入的内容’, callback);
如果写入文件不存在的话,会自动创建。
运用如下:
const fs = require('fs')
fs.writeFile('./dome.txt', '我要写入的内容', err => {
if(err != null) {
console.log(err);
return;
}
console.log('文件写入成功');
})
(二)路径操作 path
路径拼接操作 path.join(‘a’, ‘b’, ‘c’) 返回结果 a/b/c
为什么要路径拼接: 不同操作系统的路径分隔符不统一,Windows上是\ /,Linux上是/
运用如下:
//1. 导入Path模块
const path = require('path')
//2.路径拼接
let finalPath = path.join('itcate', 'a', 'b', 'c.css');
//输出结果是itcast\a\b\c.css 因为是window服务器
console.log(finalPath);
(三)相对路径vs绝对路径
大多数情况下使用绝对路径,因为相对路径有时候相对的是命令行工具的当前工作目录。
在读取文件或者设置文件路径时都会选择绝对路径。
使用__dirname获取当前文件所在的绝对路径。
使用: path.join(__dirname, '01.helloword.js')
四、 第三方模块
别人写好的、具有特定功能的、我们能直接使用的模块即第三方模块。第三方模块又名 包。
第三方模块的存在方式:
- 以js文件的形式存在,提供实现项目具体功能的API接口
- 以命令行工具存在,辅助项目开发。
获取第三方模块:
npm(node package manager): node的第三方模块管理工具
下载: npm install 模块名称
卸载: npm uninstall 模块名称
全局安装和本地安装:
- 命令行工具:全局安装
- 库文件:本地安装
第三方模块 nodemon:
在node.js中,每次修改文件都要在命令行工具中重新执行该文件,非常繁琐,nodemon是一个命令行工具,用以辅助项目开发,在修改文件保存后自动执行文件,退出时使用ctrl + c终止操作即可。
使用步骤:
1.使用npm install nodemon -g 下载它
2.在命令行工具中用nodemon命令代替node命令执行操作
第三方模块 nrm:
nrm(npm regisstry manager): npm 下载地址切换工具
npm默认下载地址在国外,我们在国内下载速度就会很慢
使用步骤:
1.使用 npm install nrm -g 下载它
2.查询可用的下载地址 nrm ls
3.切换npm下载地址nrm use 下载地址名称
4.再继续使用npm install 模块名称,速度就会很快了