一、node是什么
node是一个基于Chrome V8引擎的JavaScript代码运行环境
二、node.js 的组成
①javascript由三部分组成:ECMAScript、BOodeM和DOM
②node.js由ECMAScript和node模块API
三、 node.js的基础语法
node环境下执行代码,以 node + 文件名即可
四、Node.js模块化开发
(1)
①JS开发弊端:文件依赖与文件冲突
②一个功能就是一个模块,多个模块组成一个完整应用,抽离一个模块不会影响其它功能的运行。
③node.js开发规范:
1.其规定一个JavaScript文件就是一个模块,模块内部定义的变量和函数默认情况下在外部无法得到
2.模块内部以exports(module.exports)对象进行成员导出,以require方法导入其它模块。
// a.js
// 在模块内部定义变量
let version = 1.0;
// 在模块内部定义方法
const sayHi = name => 您好, ${name}
;
// 向模块外部导出数据
exports.version = version;
exports.sayHi = sayHi;
// b.js
// 在b.js模块中导入模块a
let a = require(’./b.js’);
// 输出b模块中的version变量
console.log(a.version);
// 调用b模块中的sayHi方法 并输出其返回值
console.log(a.sayHi(‘你好’));
(2)
①系统模块
node环境运行提供的API为系统模块。
②系统模块fs文件操作
(1)fs.reaFile(‘文件路径/文件名称’[,‘文件编码’], callback); //读取文件内容
const fs = require("fs");
fs.readFile("./01.helloworld.js", "utf8", (err, doc) => {
// 如果文件读取出错,err是一个对象,包含错误信息,正确则为null
// doc 是文件读取的结果
console.log(err);
console.log(doc);
});
(2)fs.writeFile(‘文件路径/文件名称’, ‘数据’, callback); // 写入文件内容
const fs = require("fs");
fs.writeFile("./06.demo.txt", "hello world!", (err, doc) => {
if (err != null) {
console.log(err);
return;
}
console.log("文件写入成功");
});
③系统模块path路径操作
(1)为什么需要路径拼接操作
1.不同操作系统的路径分隔符不统一。
2.window上是 \ /
3.Linux上是 /
(2)路径拼接语法
path.join(‘路径’, ‘路径’, …);
const path = require("path");
const fp = path.join("user", "feng", "ac");
console.log(fp);
// 输出结果
// user\feng\acsu
④ 相对路径与绝对路径
1.大多数情况下使用绝对路径,因为相对路径有时候是相对于命令行工具的当前工作目录
2.在读取文件或设置文件路径都会选择绝对路径
3.使用 __dirname 获取文件所在的绝对路径。
__dirname + "文件名"