Latest web development tutorials

sistema de archivos Node.js

Node.js proporciona un conjunto similar de UNIX (POSIX) API estándar de operaciones de archivo. Nodo Importar archivo del módulo del sistema (fs) sintaxis es la siguiente:

var fs = require("fs")

Asíncronos y síncronos

métodos módulo Node.js sistema de archivos (FS) Módulo tienen versiones síncronas y asíncronas, como leer el contenido de la función documento tiene asíncrono fs.readFile () y la sincronización fs.readFileSync ().

funciones de los métodos asíncronos último parámetro a la función de devolución de llamada, el primer argumento de la función de devolución de llamada contiene un mensaje de error (error).

Yo recomiendo es utilizar el método asíncrono, en comparación con el método sincrónico, asincrónico de mayor rendimiento, más rápido, y no hay ninguna obstrucción.

Ejemplos

Crear archivo entrada.txt, de la siguiente manera:

本教程官网地址:www.w3big.com
文件读取实例

Crear archivo file.js, de la siguiente manera:

var fs = require("fs");

// 异步读取
fs.readFile('input.txt', function (err, data) {
   if (err) {
       return console.error(err);
   }
   console.log("异步读取: " + data.toString());
});

// 同步读取
var data = fs.readFileSync('input.txt');
console.log("同步读取: " + data.toString());

console.log("程序执行完毕。");

El código de seguridad se ejecuta como sigue:

$ node file.js 
同步读取: 本教程官网地址:www.w3big.com
文件读取实例

程序执行完毕。
异步读取: 本教程官网地址:www.w3big.com
文件读取实例

A continuación, vamos a entender los métodos específicos del sistema de archivos Node.js.


Abrir el archivo

gramática

El siguiente es un archivo abierto en modo asíncrono sintaxis:

fs.open(path, flags[, mode], callback)

parámetros

Parámetros de la siguiente manera:

  • ruta - ruta de acceso al archivo.

  • banderas - Comportamiento de apertura de archivos.Los valores específicos descritos a continuación.

  • Modo - establecer el modo de archivo (permisos), crear un archivo de permisos por defecto 0666 (leer, escribir).

  • devolución de llamada - llamada de retorno toma dos parámetros, tales como: devolución de llamada (err, fd).

banderas parámetro puede ser los siguientes valores:

bandera descripción
r Abra el archivo en modo de lectura. Si el archivo no existe tiro.
r + Abra el archivo en modo de lectura-escritura. Si el archivo no existe tiro.
rs Leer el archivo de una manera sincrónica.
RS + De una manera sincronizada para leer y escribir archivos.
w Abra el archivo en modo de escritura, si no existe el archivo se crea.
wx , Pero si existe la ruta del archivo, el fracaso de escritura de archivo 'w' similar.
w + Abra el archivo en modo de lectura-escritura, si no existe el archivo se crea.
wx + Similares 'w +', pero si existe la ruta del archivo, el archivo de lectura y escritura fallado.
una Abra el archivo en modalidad de apertura, si no existe el archivo se crea.
hacha Al igual que en "a", pero si existe la ruta del archivo, el archivo de datos anexados falla.
a + Para leer el archivo abierto en modalidad de apertura, si no existe el archivo se crea.
ax + Similares "A +", pero si existe la ruta del archivo, el archivo se lee fallos adicionales.

Ejemplos

A continuación, creamos archivo file.js y abre el archivo entrada.txt leer y escribir código como sigue:

var fs = require("fs");

// 异步打开文件
console.log("准备打开文件!");
fs.open('input.txt', 'r+', function(err, fd) {
   if (err) {
       return console.error(err);
   }
  console.log("文件打开成功!");     
});

El código de seguridad se ejecuta como sigue:

$ node file.js 
准备打开文件!
文件打开成功!

Obtención de información de archivo

gramática

Los siguientes documentos para obtener información a través de la sintaxis modo asíncrono:

fs.stat(path, callback)

parámetros

Parámetros de la siguiente manera:

  • ruta - la ruta del archivo.

  • devolución de llamada - llamada de retorno toma dos parámetros, tales como:(err, Stats), las estadísticas son fs.Stats objeto.

Después de la ejecución fs.stat (camino), una instancia de la clase será devuelto a su función de devolución de llamada estadísticas. Puede determinar los atributos relevantes del archivo de estadísticas por clase proporciona un método. Por ejemplo, para determinar si los archivos:

var fs = require('fs');

fs.stat('/Users/liuht/code/itbilu/demo/fs.js', function (err, stats) {
    console.log(stats.isFile()); 		//true
})

Estadísticas métodos de clase son:

camino descripción
stats.isFile () Si el archivo devuelve verdadero, de lo contrario, devuelve false.
stats.isDirectory () Si el directorio devuelve verdadero, de lo contrario, devuelve false.
stats.isBlockDevice () Si el dispositivo de bloqueo devuelve verdadero, de lo contrario, devuelve false.
stats.isCharacterDevice () Si el dispositivo es un personaje devuelve verdadero, de lo contrario devuelve false.
stats.isSymbolicLink () Si se trata de un enlace blando para devolver verdadero, de lo contrario, devuelve false.
stats.isFIFO () Si el FIFO, devuelve verdadero, de lo contrario, devuelve false. FIFO es un tipo especial de canalización de comandos UNIX.
stats.isSocket () Si Socket devuelve verdadero, de lo contrario, devuelve false.

Ejemplos

A continuación, creamos archivo file.js, el código es el siguiente:

var fs = require("fs");

console.log("准备打开文件!");
fs.stat('input.txt', function (err, stats) {
   if (err) {
       return console.error(err);
   }
   console.log(stats);
   console.log("读取文件信息成功!");
   
   // 检测文件类型
   console.log("是否为文件(isFile) ? " + stats.isFile());
   console.log("是否为目录(isDirectory) ? " + stats.isDirectory());    
});

El código de seguridad se ejecuta como sigue:

$ node file.js 
准备打开文件!
{ dev: 16777220,
  mode: 33188,
  nlink: 1,
  uid: 501,
  gid: 20,
  rdev: 0,
  blksize: 4096,
  ino: 40333161,
  size: 61,
  blocks: 8,
  atime: Mon Sep 07 2015 17:43:55 GMT+0800 (CST),
  mtime: Mon Sep 07 2015 17:22:35 GMT+0800 (CST),
  ctime: Mon Sep 07 2015 17:22:35 GMT+0800 (CST) }
读取文件信息成功!
是否为文件(isFile) ? true
是否为目录(isDirectory) ? false

Escribir en el archivo

gramática

A continuación se escribe en el archivo de sintaxis en modo asíncrono:

fs.writeFile(filename, data[, options], callback)

Si el archivo existe, el método escribe el contenido se sobreponen a los contenidos de los archivos antiguos.

parámetros

Parámetros de la siguiente manera:

  • ruta - la ruta del archivo.

  • de datos - los datos que se escriben en un archivo, que puede ser objeto String (cadena) o tampón (corriente).

  • Opciones - Este parámetro es un objeto que contiene {codificación, el modo, la bandera}.La codificación predeterminada es UTF-8, el modo de 0666, la bandera de la 'w'

  • devolución de llamada - la función de devolución de llamada, la función de devolución de llamada contiene sólo los mensajes de error argumentos (err), regresa al escribir falla.

Ejemplos

A continuación, creamos archivo file.js, el código es el siguiente:

var fs = require("fs");

console.log("准备写入文件");
fs.writeFile('input.txt', '我是通过写入的文件内容!',  function(err) {
   if (err) {
       return console.error(err);
   }
   console.log("数据写入成功!");
   console.log("--------我是分割线-------------")
   console.log("读取写入的数据!");
   fs.readFile('input.txt', function (err, data) {
      if (err) {
         return console.error(err);
      }
      console.log("异步读取文件数据: " + data.toString());
   });
});

El código de seguridad se ejecuta como sigue:

$ node file.js 
准备写入文件
数据写入成功!
--------我是分割线-------------
读取写入的数据!
异步读取文件数据: 我是通过写入的文件内容

Leer el archivo

gramática

Aquí es el modo asíncrono para leer la sintaxis del archivo:

fs.read(fd, buffer, offset, length, position, callback)

Este método utiliza un descriptor de archivo para leer el archivo.

parámetros

Parámetros de la siguiente manera:

  • fd - volver a través del método fs.open () de descriptores de archivos.

  • tampón - los datos se escriben en la memoria intermedia.

  • compensado - buffer de escritura de desplazamiento está escrito.

  • longitud - El número de bytes leídos desde el archivo.

  • posición - comienzo del archivo se lee, si la posición es nula, se lee desde la posición actual del puntero del archivo.

  • devolución de llamada - llamada de retorno tiene tres argumentos yerran, BytesRead, tampón, err mensaje de error, BytesRead indica el número de bytes leídos, amortiguar el objeto de amortiguación.

Ejemplos

input.txt contenidos del archivo:

本教程官网地址:www.w3big.com

A continuación, creamos archivo file.js, el código es el siguiente:

var fs = require("fs");
var buf = new Buffer(1024);

console.log("准备打开已存在的文件!");
fs.open('input.txt', 'r+', function(err, fd) {
   if (err) {
       return console.error(err);
   }
   console.log("文件打开成功!");
   console.log("准备读取文件:");
   fs.read(fd, buf, 0, buf.length, 0, function(err, bytes){
      if (err){
         console.log(err);
      }
      console.log(bytes + "  字节被读取");
      
      // 仅输出读取的字节
      if(bytes > 0){
         console.log(buf.slice(0, bytes).toString());
      }
   });
});

El código de seguridad se ejecuta como sigue:

$ node file.js 
准备打开已存在的文件!
文件打开成功!
准备读取文件:
42  字节被读取
本教程官网地址:www.w3big.com

Cierre el archivo

gramática

Lo que sigue es un archivo cerrado en la sintaxis de modo asíncrono:

fs.close(fd, callback)

Este método utiliza un descriptor de archivo para leer el archivo.

parámetros

Parámetros de la siguiente manera:

  • fd - volver a través del método fs.open () de descriptores de archivos.

  • devolución de llamada - llamada de retorno no tiene parámetros.

Ejemplos

input.txt contenidos del archivo:

本教程官网地址:www.w3big.com

A continuación, creamos archivo file.js, el código es el siguiente:

var fs = require("fs");
var buf = new Buffer(1024);

console.log("准备打开文件!");
fs.open('input.txt', 'r+', function(err, fd) {
   if (err) {
       return console.error(err);
   }
   console.log("文件打开成功!");
   console.log("准备读取文件!");
   fs.read(fd, buf, 0, buf.length, 0, function(err, bytes){
      if (err){
         console.log(err);
      }

      // 仅输出读取的字节
      if(bytes > 0){
         console.log(buf.slice(0, bytes).toString());
      }

      // 关闭文件
      fs.close(fd, function(err){
         if (err){
            console.log(err);
         } 
         console.log("文件关闭成功");
      });
   });
});

El código de seguridad se ejecuta como sigue:

$ node file.js 
准备打开文件!
文件打开成功!
准备读取文件!
本教程官网地址:www.w3big.com
文件关闭成功

intercepción de archivo

gramática

La siguiente es la sintaxis intercepción modo asíncrono de archivo:

fs.ftruncate(fd, len, callback)

Este método utiliza un descriptor de archivo para leer el archivo.

parámetros

Parámetros de la siguiente manera:

  • fd - volver a través del método fs.open () de descriptores de archivos.

  • len - la longitud de los contenidos del archivo interceptado.

  • devolución de llamada - llamada de retorno no tiene parámetros.

Ejemplos

input.txt contenidos del archivo:

site:www.w3big.com

A continuación, creamos archivo file.js, el código es el siguiente:

var fs = require("fs");
var buf = new Buffer(1024);

console.log("准备打开文件!");
fs.open('input.txt', 'r+', function(err, fd) {
   if (err) {
       return console.error(err);
   }
   console.log("文件打开成功!");
   console.log("截取10字节后的文件内容。");
   
   // 截取文件
   fs.ftruncate(fd, 10, function(err){
      if (err){
         console.log(err);
      } 
      console.log("文件截取成功。");
      console.log("读取相同的文件"); 
      fs.read(fd, buf, 0, buf.length, 0, function(err, bytes){
         if (err){
            console.log(err);
         }

         // 仅输出读取的字节
         if(bytes > 0){
            console.log(buf.slice(0, bytes).toString());
         }

         // 关闭文件
         fs.close(fd, function(err){
            if (err){
               console.log(err);
            } 
            console.log("文件关闭成功!");
         });
      });
   });
});

El código de seguridad se ejecuta como sigue:

$ node file.js 
准备打开文件!
文件打开成功!
截取10字节后的文件内容。
文件截取成功。
读取相同的文件
site:www.r
文件关闭成功

eliminar archivos

gramática

La siguiente es la sintaxis para eliminar el archivo:

fs.unlink(path, callback)

parámetros

Parámetros de la siguiente manera:

  • ruta - la ruta del archivo.

  • devolución de llamada - llamada de retorno no tiene parámetros.

Ejemplos

input.txt contenidos del archivo:

site:www.w3big.com

A continuación, creamos archivo file.js, el código es el siguiente:

var fs = require("fs");

console.log("准备删除文件!");
fs.unlink('input.txt', function(err) {
   if (err) {
       return console.error(err);
   }
   console.log("文件删除成功!");
});

El código de seguridad se ejecuta como sigue:

$ node file.js 
准备删除文件!
文件删除成功!

Ver el archivo de nuevo y entrada.txt constatado que ya no existe.


Crear un directorio

gramática

La siguiente es la sintaxis para crear el directorio:

fs.mkdir(path[, mode], callback)

parámetros

Parámetros de la siguiente manera:

  • ruta - la ruta del archivo.

  • Modo - establece los permisos de directorio, por defecto es 0777.

  • devolución de llamada - llamada de retorno no tiene parámetros.

Ejemplos

A continuación, creamos archivo file.js, el código es el siguiente:

var fs = require("fs");

console.log("创建目录 /tmp/test/");
fs.mkdir("/tmp/test/",function(err){
   if (err) {
       return console.error(err);
   }
   console.log("目录创建成功。");
});

El código de seguridad se ejecuta como sigue:

$ node file.js 
创建目录 /tmp/test/
目录创建成功。

leer directorio

gramática

La siguiente es la sintaxis para leer el directorio:

fs.readdir(path, callback)

parámetros

Parámetros de la siguiente manera:

  • ruta - la ruta del archivo.

  • devolución de llamada - la función de devolución de llamada, la función de devolución de llamada toma dos argumentos yerran, archivos, mensajes de error ERR, archivos de los archivos de lista del arsenal en un directorio.

Ejemplos

A continuación, creamos archivo file.js, el código es el siguiente:

var fs = require("fs");

console.log("查看 /tmp 目录");
fs.readdir("/tmp/",function(err, files){
   if (err) {
       return console.error(err);
   }
   files.forEach( function (file){
       console.log( file );
   });
});

El código de seguridad se ejecuta como sigue:

$ node file.js 
查看 /tmp 目录
input.out
output.out
test
test.txt

eliminar el directorio

gramática

La siguiente es la sintaxis para eliminar el directorio:

fs.rmdir(path, callback)

parámetros

Parámetros de la siguiente manera:

  • ruta - la ruta del archivo.

  • devolución de llamada - llamada de retorno no tiene parámetros.

Ejemplos

A continuación, creamos archivo file.js, el código es el siguiente:

var fs = require("fs");

console.log("准备删除目录 /tmp/test");
fs.rmdir("/tmp/test",function(err){
   if (err) {
       return console.error(err);
   }
   console.log("读取 /tmp 目录");
   fs.readdir("/tmp/",function(err, files){
      if (err) {
          return console.error(err);
      }
      files.forEach( function (file){
          console.log( file );
      });
   });
});

El código de seguridad se ejecuta como sigue:

$ node file.js 
准备删除目录 /tmp/test
input.out
output.out
test
test.txt
读取 /tmp 目录
……

método del módulo de archivo de referencia

La siguiente es una lista de los archivos de la misma manera Node.js módulos:

No. Método y Descripción
1 fs.rename (OldPath newpath, devolución de llamada)
renombrar asíncrono (). función de devolución de llamada no tiene parámetros, pero puede lanzar.
2 fs.ftruncate (fd, len, devolución de llamada)
ftruncate asíncrono (). función de devolución de llamada no tiene parámetros, pero puede lanzar.
3 fs.ftruncateSync (fd, len)
ftruncate sincronización ()
4 fs.truncate (ruta, len, devolución de llamada)
truncado asíncrono (). función de devolución de llamada no tiene parámetros, pero puede lanzar.
5 fs.truncateSync (ruta, len)
truncado sincronización ()
6 fs.chown (ruta, uid, gid, devolución de llamada)
chown asincrónica función de devolución de llamada (). no tiene parámetros, pero puede lanzar.
7 fs.chownSync (ruta, uid, gid)
chown sincronización ()
8 fs.fchown (fd, uid, gid, devolución de llamada)
fchown asíncrono (). función de devolución de llamada no tiene parámetros, pero puede lanzar.
9 fs.fchownSync (fd, uid, gid)
fchown sincronización ()
10 fs.lchown (ruta, uid, gid, devolución de llamada)
lchown asíncrono (). función de devolución de llamada no tiene parámetros, pero puede lanzar.
11 fs.lchownSync (ruta, uid, gid)
lchown sincronización ()
12 fs.chmod (ruta, modo, devolución de llamada)
chmod asíncrono (). función de devolución de llamada no tiene parámetros, pero puede lanzar.
13 fs.chmodSync (ruta, modo)
Sincronización chmod ().
14 fs.fchmod (fd, el modo de devolución de llamada)
fchmod asíncrono (). función de devolución de llamada no tiene parámetros, pero puede lanzar.
15 fs.fchmodSync (fd, modo)
Sincronización fchmod ().
16 fs.lchmod (ruta, modo, devolución de llamada)
lchmod asíncrono (). función de devolución de llamada no tiene parámetros, pero puede lanzar. Sólo está disponible en Mac OS X.
17 fs.lchmodSync (ruta, modo)
Sincronización lchmod ().
18 fs.stat (path, devolución de llamada)
stat asíncrono (). función de devolución de llamada toma dos argumentos yerran, las estadísticas, las estadísticas son fs.Stats objeto.
19 fs.lstat (path, devolución de llamada)
lstat asíncrono (). función de devolución de llamada toma dos argumentos yerran, las estadísticas, las estadísticas son fs.Stats objeto.
20 fs.fstat (fd, devolución de llamada)
fstat asíncrono (). función de devolución de llamada toma dos argumentos yerran, las estadísticas, las estadísticas son fs.Stats objeto.
21 fs.statSync (ruta)
Sincronización stat (). Fs.Stats devuelven una instancia de.
22 fs.lstatSync (ruta)
Sincronización lstat (). Fs.Stats devuelven una instancia de.
23 fs.fstatSync (fd)
Sincronización fstat (). Fs.Stats devuelven una instancia de.
24 fs.link (SRCPATH, dstpath, devolución de llamada)
enlace asíncrono (). función de devolución de llamada no tiene parámetros, pero puede lanzar.
25 fs.linkSync (SRCPATH, dstpath)
Vínculo de sincronización ().
26 fs.symlink (SRCPATH, dstpath [, tipo ], devolución de llamada)
enlace simbólico asíncrono (). función de devolución de llamada no tiene parámetros, pero puede lanzar. Tipo de parámetro se puede ajustar a 'dir', 'archivo' o 'unión' ( 'archivo' por defecto).
27 fs.symlinkSync (SRCPATH, dstpath [, tipo ])
Sincronización enlace simbólico ().
28 fs.readlink (path, devolución de llamada)
readlink asíncrono (). función de devolución de llamada toma dos argumentos yerran, linkString.
29 fs.realpath (ruta [, caché], devolución de llamada)
realpath asíncrono (). función de devolución de llamada toma dos argumentos yerran, resolvedPath.
30 fs.realpathSync (ruta [, caché])
realpath síncrona (). Devuelve la ruta absoluta.
31 fs.unlink (path, devolución de llamada)
unlink asíncrono (). función de devolución de llamada no tiene parámetros, pero puede lanzar.
32 fs.unlinkSync (ruta)
Sincronización unlink ().
33 fs.rmdir (path, devolución de llamada)
rmdir asíncrono (). función de devolución de llamada no tiene parámetros, pero puede lanzar.
34 fs.rmdirSync (ruta)
Sincronización rmdir ().
35 fs.mkdir (ruta [, modo], devolución de llamada)
S asíncrona mkdir función de devolución de llamada (2). No tiene parámetros, pero puede lanzar. modo por defecto es 0777.
36 fs.mkdirSync (ruta [, modo])
Sincronización mkdir ().
37 fs.readdir (path, devolución de llamada)
readdir asíncrono (3). Leer el contenido del directorio.
38 fs.readdirSync (ruta)
Sincronización readdir (). Devuelve una matriz de lista de archivos.
39 fs.close (fd, devolución de llamada)
Asíncrono close (). Función de devolución de llamada no tiene parámetros, pero puede lanzar.
40 fs.closeSync (fd)
Sincronización close ().
41 fs.open (ruta, banderas [, modo ], devolución de llamada)
Asíncrono abrir el archivo.
42 fs.openSync (ruta, banderas [, modo ])
versión sincrónica de fs.open ().
43 fs.utimes (path, atime, -mtime, devolución de llamada)
44 fs.utimesSync (path, atime, mtime)
Cambiar las marcas de tiempo de archivo, el archivo de ruta de archivo especificada.
45 fs.futimes (fd, atime, -mtime, devolución de llamada)
46 fs.futimesSync (fd, atime, mtime)
Cambio de marcas de tiempo, especificado por el descriptor de archivo.
47 fs.fsync (fd, devolución de llamada)
Asíncrono función de devolución de llamada fsync. No tiene parámetros, pero puede lanzar.
48 fs.fsyncSync (fd)
fsync sincronización.
49 fs.write (fd, buffer, offset, longitud [, posición], devolución de llamada)
El contenido del búfer de escritura en el archivo especificado por el descriptor de archivo.
50 fs.write (fd, los datos de posición, [ [, que codifica]], devolución de llamada)
Escribir en el contenido del archivo de descriptor de fichero fd.
51 fs.writeSync (fd, buffer, offset, longitud [, posición])
versión Synchronous fs.write ().
52 fs.writeSync (FD, los datos de posición, [ [, que codifica]])
versión Synchronous fs.write ().
53 fs.read (fd, buffer, offset, longitud, posición, devolución de llamada)
Lea el contenido de los documentos en el descriptor de fichero fd.
54 fs.readSync (fd, buffer, offset, longitud, posición)
versión sincrónica fs.read.
55 fs.readFile (nombre de archivo [, opciones], devolución de llamada)
Asíncrono leer el contenido del archivo.
56 fs.readFileSync (nombre de archivo [, opciones])
57 fs.writeFile (nombre de archivo, datos [, opciones ], devolución de llamada)
escritura asincrónica al contenido del archivo.
58 fs.writeFileSync (nombre de archivo, datos [, opciones ])
versión sincrónica fs.writeFile.
59 fs.appendFile (nombre de archivo, datos [, opciones ], devolución de llamada)
Asíncronos contenido de los archivos adicionales.
60 fs.appendFileSync (nombre de archivo, datos [, opciones ])
La versión sincronizada de fs.appendFile.
61 fs.watchFile (nombre de archivo [, opciones], oyente)
Modificar la vista del archivo.
62 fs.unwatchFile (nombre de archivo [, oyente])
Dejar de ver los cambios de nombre de archivo.
63 fs.watch (nombre de archivo [, opciones] [ , oyente])
Comprobar los cambios de nombre de archivo, nombre de archivo puede ser un archivo o directorio. objeto de nuevo fs.FSWatcher.
64 fs.exists (path, devolución de llamada)
Detectar existe una trayectoria dada.
65 fs.existsSync (ruta)
Versión fs.exists síncronas.
66 fs.access (ruta [, modo], devolución de llamada)
Comprueba si la ruta especificada de los permisos de usuario.
67 fs.accessSync (ruta [, modo])
versión sincrónica fs.access.
68 fs.createReadStream (ruta [, opciones])
ReadStream objeto espalda.
69 fs.createWriteStream (ruta [, opciones])
WriteStream objeto espalda.
70 fs.symlink (SRCPATH, dstpath [, tipo ], devolución de llamada)
enlace simbólico asíncrono (). función de devolución de llamada no tiene parámetros, pero puede lanzar.

Para más detalles, echa un vistazo a la página web oficial Descripción del módulo del archivo: Presente el sistema .