global
是 Node.js 的 全局对象
,相当于 JavaScript 中的 window
。
// global 包含了当前环境的很多信息
consoel.log(global)
// 当前文件名称
global.__filename
// 当前目录名称
global.__dirname
...
路径处理模块。
var path = require('path')
// 格式化
path.normalize('c:/user') // c:\user | 针对 window 操作系统文件路径
// 路径解析
path.parse('/Users/jason/Desktop/test/node')
/*
{ root: '/',
dir: '/Users/jason/Desktop/test',
base: 'node',
ext: '',
name: 'node' }
*/
// 路径拼接
console.log(path.join('/Users', '/jason/Desktop/node')) // /Users/jason/Desktop/node
网址处理模块。
var url = require('url')
// 解析
url.parse('https://www.jmjc.tech/less/109')
/*
Url {
protocol: 'https:',
slashes: true,
auth: null,
host: 'www.jmjc.tech',
port: null,
hostname: 'www.jmjc.tech',
hash: null,
search: null,
query: null,
pathname: '/less/109',
path: '/less/109',
href: 'https://www.jmjc.tech/less/109' }
*/
文件处理模块,Node.js 天生是 异步 执行的,但 fs模块
也支持了 同步
的功能。
异步写入
var fs = require('fs')
// 写入内容 “writed” 到当前目录的 "filename" 文件,如果该文件不错误,自动创建后写入
fs.writeFile('./filename', 'writed', function (err) {
if (err) {
console.log(err) // 写入失败信息
} else {
console.log('ok') // 写入成功提示
}
})
异步读取
var fs = require('fs')
// 读取当前目录的 filename 文件
fs.readFile('./filename', 'utf-8', function (err, data) { // 默认utf-8
if (err) {
console.log(err) // 读取失败打印错误代码
} else {
console.log(data) // 读取成功输出
}
})
同步写入
// 同步操作文件,没有像异步一样有自动的错误处理机制,所以最好自己套一层 try catch
try {
require('fs').writeFileSync('filename', 'writed')
} catch (e) {
console.log(e)
}
同步读取
data = require('fs').readFileSync('filename', 'utf-8')
console.log(data)
追加写入
var fs = require('fs')
// fs.writeFile 或者 fs.writeFileSync 的写入是覆盖的
fs.appendFile('./filename', '\r' + 'writed', function (err) {
if (err) {
console.log(err)
} else {
console.log('ok')
}
})
异步读取目录
var fs = require('fs')
// 列出指定目录下的 “目录文件”
fs.readdir('./', function (err, file) {
if (err) {
console.log(err)
} else {
console.log(file)
}
})
同步读取目录
path = require('fs').readdirSync('./') // 获取指定目录下的 “目录文件”
console.log(path)
异步获取
var fs = require('fs')
fs.stat('filename', function (err, stat) {
if (err) {
console.log(err)
} else {
stat.isFile() // 是否是文件
stat.isDirectory() // 是否是目录
stat.size // 文件大小:
stat.birthtime // 创建时间 Date对象
stat.mtime // 修改时间 Date对象
}
})
同步获取
var stat = require('fs').statSync('filename')
/*
stat.isFile()
stat.isDirectory()
stat.size
stat.birthtime
stat.mtime
...
*/