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
更多教程 HTML5 教程 CSS3 教程 JavaScript 教程 JQuery 教程 React.js 教程 Node.js 教程 Koa2 教程 Python 教程 Linux 教程