Node.js fs 模块

global

global 是 Node.js 的 全局对象,相当于 JavaScript 中的 window

// global 包含了当前环境的很多信息
consoel.log(global) 

// 当前文件名称
global.__filename

// 当前目录名称
global.__dirname

...

path

路径处理模块。

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

url

网址处理模块。

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' }
*/

fs

文件处理模块,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
  ...
*/
Node.js 教程 Node.js 安装 Node.js NPM Node.js 模块 Node.js HTTP Node.js 文件操作 Node.js Buffer Node.js Stream Node.js Crypto Node.js Mysql Node.js Request Node.js WebSocket