全局模块
process.env 环境变量
if (process.env.dev) {
console.log('开发环境');
} else {
console.log('生产环境');
}
process.argv 提供当前 Node.js 进程的有关信息
let num1 = parseInt(process.argv[2])
let num2 = parseInt(process.argv[3])
console.log(num1 + num2);
系统模块
定义:需要require(),但不需要单独下载
path: 用于处理文件路径和目录路径的实用工具
let path = require('path')
// path.dirname() 获取当前文件路径
console.log(path.dirname('./node/a/b/c/1.jpg')); // ./node/a/b/c
// path.basename() 获取当前路径中的名字
console.log(path.basename('./node/a/b/c/1.jpg')); // 1.jpg
// path.extname() 获取当前路径中的扩展名
console.log(path.extname('./node/a/b/c/1.jpg')); //.jpg
// 返回当前文件绝对路径
console.log(path.resolve(__dirname, 'index.js'));
fs: 用于文件读写操作
fs-test.js
abc
使用
let fs = require('fs')
/**
* 异步操作
*/
// fs读操作
fs.readFile('./fs-test.js', (err, data) => {
if (err) {
console.log(err);
} else {
console.log(data.toString());
}
})
// fs写操作(覆盖内容)
fs.writeFile('fs-test2.js', '月薪2万', (err) => {
if (err) {
throw err
}
})
// fs写操作(追加内容)a 表示 fs.appendFile
fs.writeFile('fs-test2.js', '月薪3万', { flag: "a" }, (err) => {
if (err) {
throw err
}
})
/**
* 同步
*/
// fs读操作
let data1 = fs.readFileSync('./fs-test.js')
console.log(data1.toString());
// fs写操作
let data2 = fs.writeFileSync('./fs-test2', '月薪20k')
自定义模块
定义:require自己封装的模块
require 导入模块
exports
mod-test.js
// 单个导出
exports.a = 1;
exports.b = 2;
mod.js
// 单个导出
const mod1 = require('./mod-test')
console.log(mod1.a);
console.log(mod1.b);
module
模块导出
mod-test.js
/**
* 模块化导出
*/
module.exports = {
a: 1,
b: 2
}
// 方法导出
module.exports = function () {
console.log(123);
}
// class导出
module.exports = class {
constructor(name) {
this.name = name
}
show () {
console.log(this.name);
}
}
mod.js
// 方法导出
const mod1 = require('./mod-test')
mod1()
// class导出,需要实例化
const mode1 = require('./mod-test')
let p = new mode1('aaaaaaaaaa')
p.show()