NodeJs基础
1. Node概述
- Node是一个基于Chrome V8引擎的Js代码运行环境。
- 运行环境
- 浏览器(软件)能够运行Js代码,浏览器就是Js代码的运行环境。
- Node能够运行Js代码,Node就是Js代码的运行环境。
2. 运行环境搭建
1. 版本查看
node -v
3. Node.js快速入门
1. 组成
- Js由三部分组成,ECMAScript,DOM,BOM
- Node.js是由ECMAScript及Node环境提供的一些附加API组成的,包括文件、网络、路径等等一些更加强大的API
2. 基础语法
var first = 'hello nodejs';
console.log(first);
function fn() {
console.log('fn函数被调用');
}
fn();
for (var i = 0; i < 5; i++) {
console.log(i);
}
if (true) {
console.log('123');
}
4. 模块化开发
1. js开发弊端
js在使用时存在量大问题,文件依赖和命名冲突
2. 模块化开发规范
- Node.js规定一个js文件就是一个模块,模块内部定义的变量和函数默认情况下在外部无法得到
- 模块内部可以使用exports对象进行成员导出,使用require方法导入其他模块。
3. 模块成员导出
// a.js
// 在模块内部定义变量
let version = 1.0;
// 在模块内部定义方法
const sayHi = name => `您好, ${name}`;
// 向模块外部导出数据
exports.version = version;
exports.sayHi = sayHi;
4. 模块成员的导入
// b.js
// 在b.js模块中导入模块a
let a = require('./a.js');
// 输出b模块中的version变量
console.log(a.version);
// 调用b模块中的sayHi方法并输出其返回值
console.log(a.sayHi('cb'));
5. 模块成员导出的另一种方式
module.exports.version = version;
module.exports.sayHi = sayHi;
exports是module.exports的别名(地址引用关系),导出对象最终以module.exports为准
5. 系统模块
1. 定义
Node运行环境提供的API。这些API都是以模块化的方式进行开发的,所以我们又称Node运行环境提供的AIP为系统模块
2. 系统模块fs - 文件操作
- 文件读取
// f:file文件,s:system系统,文件操作系统
const fs = require('fs');
// 读取文件内容
fs.readFile('文件路径/文件名称'[, '文件编码'], callback);
// 示例
// f:file文件,s:system系统,文件操作系统
const fs = require('fs');
// 读取上一级css目录下的base.css
fs.readFile('../css/base.css', 'utf-8', (err, doc) => {
// 如果文件读取发生错误 参数err的值为错误对象 否则err的值为null
// doc参数为文件内容
if (err == null) {
// 在控制台中输出文件内容
console.log(doc);
}
});
- 文件写入
fs.writeFile('文件路径/文件名称', '数据', callback);
const fs = require('fs');
const content = '<h3>正在使用fs.writeFile写入文件内容</h3>';
fs.writeFile('./demo.txt', content, err => {
if (err != null) {
console.log(err);
return;
}
console.log('文件写入成功');
});
3. 系统模块path - 路径操作
- 路径拼接
path.join('路径1', '路径2', ……);
// 导入path模块
const path = require('path');
// 路径拼接
let finialPath = path.join('css', 'a.css')
// 输出结果
console.log(finialPath);
4. 相对路径VS绝对路径
- 大多数情况下使用绝对路径,因为相对路径有时候相对的是命令行工具的当前目录
- 在读取文件或者设置文件路径时都会选择绝对路径
- 使用__dirname获取当前文件所在的绝对路径
6. 第三方模块
1. 存在形式
- 以js文件的形式存在,提供实现项目具体功能的API接口。
- 以命令行工具形式存在,辅助项目开发
2. 获取第三方模块
npm(node package manager):node的第三方模块管理工具
// 安装
npm install <第三方模块名字>
// 卸载
npm uninstall package <第三方模块名字>
3. 全局安装与本地安装
- 本地安装:只有当前项目可以使用
- 全局安装:所有项目都可以使用
- 命令行工具:全局安装
- 库文件:本地安装
4. nodemon
- 一个命令行工具,辅助项目开发。
- 在Node.js中,每次修改文件都要在命令行工具中重新执行该文件,非常繁琐。
- 使用步骤
- 下载
npm install nodemon -g
,g代表全局安装 - 在命令行工具中用nodemon命令替代node命令执行文件
- 下载
5. nrm
- nrm(npm registry manager):npm下载地址切换工具
- 使用步骤
- 下载
npm install nrm -g
- 查询可用下载地址列表
nrm ls
- 切换npm下载地址
nrm use <下载地址名称>
- 下载