Latest web development tutorials

Node.js objeto global

JavaScript tiene un objeto especial, llamado un objeto global (Global Object), con todos sus atributos se puede acceder a cualquier parte del programa, la variable global.

JavaScript del navegador por lo general es objeto de la ventana global, el objeto global Node.js es global, todas las variables globales (excepto en sí mundial) son propiedad de objeto global.

En Node.js nos acceso directo a las propiedades globales, sin la necesidad de incluir en la solicitud.


Los objetos globales y variables globales

El papel global más fundamental como anfitrión variable global. Por definición ECMAScript cumplen las siguientes condiciones son variables globales:

  • Más externa variable definida;
  • Las propiedades del objeto global;
  • Variable (asignación directa variables no definidas) definido implícitamente.

Cuando se define una variable global, la variable se convertirá también en la propiedad del objeto global, y viceversa. Tenga en cuenta que, en Node.js no se puede definir variables en el exterior, ya que todos los códigos de usuario son parte del módulo actual, y el módulo en sí no es el contexto más externa.

Nota: utilizar siempre var para definir variables con el fin de evitar la introducción de una variable global, ya que las variables globales de perjuicio para el espacio de nombres, aumentar el riesgo de código de acoplamiento.


__filename

__filename indica el nombre de archivo del script se está ejecutando actualmente.Ruta absoluta a la ubicación donde va a ser el archivo de salida, y el parámetro de línea de comandos y especifique el nombre del archivo no es necesariamente la misma. Si en el módulo, el valor devuelto es la ruta de acceso al archivo de módulo.

Ejemplos

Crear un archivo main.js, el código de la siguiente manera:

// 输出全局变量 __filename 的值
console.log( __filename );

archivo main.js Ejecutivo, el código es el siguiente:

$ node main.js
/web/com/w3big/nodejs/main.js

__dirname

__dirname representa el directorio script ejecutándose actualmente se encuentra.

Ejemplos

Crear un archivo main.js, el código de la siguiente manera:

// 输出全局变量 __dirname 的值
console.log( __dirname );

archivo main.js Ejecutivo, el código es el siguiente:

$ node main.js
/web/com/w3big/nodejs

setTimeout (cb, ms)

setTimeout (cb, ms) la función global realice la función especificada después de un número especificado de milisegundos (ms) Número (CB).: Función SetTimeout () se especifica una sola vez.

Devuelve un valor de identificador representa el temporizador.

Ejemplos

Crear un archivo main.js, el código de la siguiente manera:

function printHello(){
   console.log( "Hello, World!");
}
// 两秒后执行以上函数
setTimeout(printHello, 2000);

archivo main.js Ejecutivo, el código es el siguiente:

$ node main.js
Hello, World!

clearTimeout (t)

clearTimeout (t) se utiliza para detener una función global antes de pasar setTimeout () para crear un temporizador.Parámetrot por la función setTimeout () para crear una calculadora.

Ejemplos

Crear un archivo main.js, el código de la siguiente manera:

function printHello(){
   console.log( "Hello, World!");
}
// 两秒后执行以上函数
var t = setTimeout(printHello, 2000);

// 清除定时器
clearTimeout(t);

archivo main.js Ejecutivo, el código es el siguiente:

$ node main.js

setInterval (cb, ms)

setInterval (cb, ms) la función global realice la función especificada después de un número especificado de milisegundos (ms) Número (CB).

Devuelve un valor de identificador representa el temporizador. Puede utilizar la funciónclearInterval (t) para desactivar el temporizador.

método setInterval () continuará llamando a la función hasta que el clearInterval () se llama o la ventana está cerrada.

Ejemplos

Crear un archivo main.js, el código de la siguiente manera:

function printHello(){
   console.log( "Hello, World!");
}
// 两秒后执行以上函数
setInterval(printHello, 2000);

archivo main.js Ejecutivo, el código es el siguiente:

$ node main.js
¡Hola, mundo! ¡Hola, mundo! ¡Hola, mundo! ¡Hola, mundo! ¡Hola, mundo! ......

El programa anterior producirá la salida una vez cada dos segundos "Hola, mundo!", Y será de forma permanente la ejecución continúa hasta que se pulsa el botónCtrl + C.


consola

consola consola para proporcionar una salida estándar, que es las herramientas de depuración proporcionadas por el motor de JScript de Internet Explorer, convirtiéndose más tarde en el navegador estándar de facto.

Node.js sigue este estándar, proporciona el comportamiento y los hábitos del objeto consola utilizada para el flujo de salida estándar (stdout) o caracteres de salida flujo de error estándar (stderr) consistente.

método de la consola

El siguiente es el objeto de la consola:

No. Método y Descripción
1 console.log ([Datos] [, ... ])
Para los caracteres estándar de impresión de flujo de salida y final con un salto de línea. Este método toma varios parámetros, si hay sólo un parámetro, la cadena de salida de este parámetro. Si hay varios argumentos, lugares como el formato de salida de comando printf lenguaje C ().
2 console.info ([Datos] [, ... ])
P es la función del comando devuelve un mensaje informativo, el comando es la diferencia console.log no es muy grande, además del cromo será solamente la salida del texto, el resto se mostrará un signo de exclamación azul.
3 console.error ([Datos] [, ... ])
Salida de un mensaje de error. Consola se mostrará en rojo cuando se produce un error tenedor.
4 console.warn ([Datos] [, ... ])
Mensaje de advertencia se emite. Consola aparece con un signo de exclamación amarillo.
5 console.dir (obj [, opciones])
Un objeto que se utiliza para verificar (revisar), y fácil de leer los formatos de visualización e impresión.
6 console.time (etiqueta)
La salida del tiempo, la hora de inicio.
7 console.timeEnd (etiqueta)
Terminar el tiempo, que indica el final de la sincronización.
8 console.trace (mensaje [, ...])
Código está ejecutando actualmente el trayecto de la llamada en la pila, ejecute esta función es útil la prueba, sólo quieren probar la función de los cuales se unió console.trace en la línea.
9 console.assert (valor [, mensaje] [ , ...])
Para determinar si una variable o expresión es verdadera, se necesitaron dos parámetros, el primer parámetro es la expresión y el segundo argumento es una cadena. Sólo cuando el primer argumento es falso, la salida será el segundo argumento, no tendría ningún resultado.
console.log (): imprimir la secuencia de salida estándar y termina con un carácter de nueva línea.

console.log acepta varios parámetros, si hay sólo un parámetro, la cadena de salida de este parámetro. Si hay varios argumentos, lugares como el formato de salida de comando printf lenguaje C ().

El primer parámetro es una cadena, sin parámetros, sólo se imprime una nueva línea.

console.log('Hello world'); 
console.log('byvoid%diovyb'); 
console.log('byvoid%diovyb', 1991); 

Los resultados operativos de la siguiente manera:

Hello world 
byvoid%diovyb 
byvoid1991iovyb 
  • console.error (): con console.log () utiliza el mismo, pero el resultado en la secuencia de error estándar.
  • console.trace (): flujo de error en la salida estándar de la pila de llamadas actual.
console.trace();

Los resultados operativos de la siguiente manera:

Trace: 
at Object.<anonymous> (/home/byvoid/consoletrace.js:1:71) 
at Module._compile (module.js:441:26) 
at Object..js (module.js:459:10) 
at Module.load (module.js:348:31) 
at Function._load (module.js:308:12) 
at Array.0 (module.js:479:10) 
at EventEmitter._tickCallback (node.js:192:40)

Ejemplos

Crear un archivo main.js, el código de la siguiente manera:

console.info("程序开始执行:");

var counter = 10;
console.log("计数: %d", counter);

console.time("获取数据");
//
// 执行一些代码
// 
console.timeEnd('获取数据');

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

archivo main.js Ejecutivo, el código es el siguiente:

$ node main.js
程序开始执行:
计数: 10
获取数据: 0ms
程序执行完毕

proceso

proceso es una variable global que atributo de objeto global.

Se utiliza para describir el estado actual del proceso de Node.js objeto, proporciona una interfaz sencilla para el sistema operativo. Normalmente se escribe programa de línea de comandos nativa, y en última instancia, para tratar con él. A continuación se introducirá algunos de los métodos más comúnmente utilizado de procedimiento miembros se opongan.

No. Eventos y descripción
1 salida
Se activa cuando el proceso está listo para dejar de fumar.
2 beforeExit
Este evento se activa cuando el nodo vacío bucle de eventos, y no hay otros arreglos. En general, cuando no existe un proceso para organizar el nodo de salida, pero los oyentes 'beforeExit' se pueden llamar de forma asíncrona, de modo que el nodo va a continuar.
3 uncaughtException
Cuando una excepción burbujeo de nuevo al bucle de eventos, activar este evento. Si se agrega un monitor de la excepción, la acción predeterminada (imprimir un seguimiento de la pila y salida) no ocurrirán.
4 La señal se activa cuando el evento<br> cuando el proceso recibe una señal. Ver una lista de nombres de señales POSIX estándar de la señal, tales como SIGINT, SIGUSR1 y así sucesivamente.

Ejemplos

Crear un archivo main.js, el código de la siguiente manera:

process.on('exit', function(code) {

  // 以下代码永远不会执行
  setTimeout(function() {
    console.log("该代码不会执行");
  }, 0);
  
  console.log('退出码为:', code);
});
console.log("程序执行结束");

archivo main.js Ejecutivo, el código es el siguiente:

$ node main.js
程序执行结束
退出码为: 0

códigos de estado de salida

códigos de estado de salida son los siguientes:

Código de estado Título y Descripción
1 Excepción grave no detectada
Hay una excepción no capturada, y no ha sido procesada o dominio manejador uncaughtException.
2 no usado
retención
3 Error interno de JavaScript Parse
código fuente JavaScript error de análisis causado cuando se inicia el proceso de nodo. En muy raras ocasiones, sólo cuando habrá en el desarrollo del Nodo.
4 La falta de evaluación interna JavaScript
JavaScript proceso de inicio del nodo de origen, cuando se evalúa la función devuelve el fracaso. En muy raras ocasiones, sólo cuando habrá en el desarrollo del Nodo.
5 Error fatal
V8 en error grave. Por lo general, imprimir salida estándar de errores, de contenido: ERROR FATAL
6 De no funcionamiento excepción interna Handler
Excepción no detectada, manejador de excepciones en el interior de algún modo ajustado en función, y no puede ser llamado.
7 Excepción interna Handler en tiempo de ejecución Fracaso
Excepción no detectada y el controlador de excepciones para manejar su propia lanza una excepción. Por ejemplo, si process.on ( 'uncaughtException') o domain.on ( "error") genera una excepción.
8 no usado
retención
9 Argumento no válido
Puede ser desconocido para los parámetros o parámetro a ningún valor.
10 La falta de JavaScript interno en tiempo de ejecución
código fuente JavaScript es lanzada al iniciar los errores de proceso Nodo, muy raros, sólo cuando habrá en el desarrollo del Nodo.
12 Argumento no válido de depuración
--debug conjunto de parámetros y / o --debug-brk, pero eligió el puerto incorrecto.
> 128 Las salidas de señal
Si el nodo recibe una señal fatal, como SIGKILL o SIGHUP, a continuación, el código de salida es 128 más el código de la señal. Esta es la práctica estándar de Unix, alta código en señales de salida.

atributos de proceso

Proceso proporciona muchas propiedades útiles, facilidad de interacción que podemos controlar mejor el sistema:

Número. Propiedad y Descripción
1 stdout
flujo de salida estándar.
2 stderr
flujo de error estándar.
3 stdin
flujo de entrada estándar.
4 argv
argv propiedad devuelve un conjunto de diversos parámetros sobre la ejecución del script de línea de comandos cuando la composición. Sus primeros miembros son siempre nodo, el segundo elemento es el nombre de archivo de la escritura, y los miembros restantes son los parámetros del archivo de script.
5 execPath
Devuelve la ruta absoluta de los binarios actuales de nodo de ejecución de secuencias de comandos.
6 execArgv
Devuelve un miembro de la matriz está en que se ejecuta la secuencia de comandos de línea de comandos ejecutables entre los parámetros de nodo de línea de comandos del archivo de script.
7 env
Devuelve un objeto, los miembros de la variable de entorno de shell actual
8 exitCode
código de salida del proceso, si el proceso regalado por la salida process.exit (), sin especificar un código de salida.
9 versión
versión de nodo, tales v0.10.18.
10 versiones
Una propiedad que contiene las versiones de nodo y dependencias.
11 config
Objeto que contiene el nodo actual se utiliza para compilar el archivo ejecutable Javascript opciones de configuración. Es el mismo guión de ejecución ./configure genera el archivo "config.gypi".
12 pid
El número de proceso actual.
13 título
Nombre del proceso, el valor predeterminado es "nodo", puede personalizar el valor.
14 arco
La arquitectura actual de la CPU: 'brazo', 'IA32' o 'x 64'.
15 plataforma
Ejecutar el programa en el que la plataforma 'Darwin', 'FreeBSD', 'Linux', 'sunos' o 'win32'
16 mainModule
require.main métodos alternativos. punto diferente, si el módulo principal se cambia en tiempo de ejecución, require.main puede continuar para volver al módulo de edad. Se cree que ambos se refieren al mismo módulo.

Ejemplos

Crear un archivo main.js, el código de la siguiente manera:

// 输出到终端
process.stdout.write("Hello World!" + "\n");

// 通过参数读取
process.argv.forEach(function(val, index, array) {
   console.log(index + ': ' + val);
});

// 获取执行路局
console.log(process.execPath);


// 平台信息
console.log(process.platform);

archivo main.js Ejecutivo, el código es el siguiente:

$ node main.js
Hello World!
0: node
1: /web/www/node/main.js
/usr/local/node/0.10.36/bin/node
darwin

Manual de Referencia de los métodos

Proceso proporciona una gran cantidad de métodos útiles para facilitar un mejor control de nuestro sistema interactivo:

No. Método y Descripción
1 abortar ()
Esto hará que el evento de interrupción nodo gatillo. Saldrá nodo y generar un archivo de núcleo.
2 chdir (directorio)
Cambiar el directorio de trabajo actual del proceso, si la operación falla el tiro.
3 CWD ()
Devuelve el directorio de trabajo del proceso actual
4 salida ([code])
El final del proceso con el código especificado. Si se omite, se utilizará el código 0.
5 getgid ()
Obtener la identificación del grupo de procesos (ver getgid (2)). Cuando el grupo fue adquirido ID digital, no el nombre.
Nota: Esta función se puede utilizar (por ejemplo, no es de Windows y Android) en plataformas POSIX.
6 setgid (id)
Configuración proceso de identificación de grupo (Ver setgid (2)). Puede recibir un documento de identidad o nombre de grupo digital. Si especifica un nombre de grupo resolverá para bloquear la espera de un identificador digital.
Nota: Esta función se puede utilizar (por ejemplo, no es de Windows y Android) en plataformas POSIX.
7 getuid ()
Obtener proceso de identificación de usuario (ver getuid (2)). Este es un identificador numérico de usuario, no el nombre de usuario.
Nota: Esta función se puede utilizar (por ejemplo, no es de Windows y Android) en plataformas POSIX.
8 setuid (id)
proceso de ajuste de la identificación del usuario (ver setuid (2)). Recepción de un documento de identidad o cadena de nombre digital. Si especifica un nombre de grupo resolverá para bloquear la espera de un identificador digital.
Nota: Esta función se puede utilizar (por ejemplo, no es de Windows y Android) en plataformas POSIX.
9 getgroups ()
Regreso grupo de procesos matriz de identificación. sistema POSIX no garantiza que no existe, pero no está garantizada Node.js.
Nota: Esta función se puede utilizar (por ejemplo, no es de Windows y Android) en plataformas POSIX.
10 setgroups (grupos)
Set ID de grupo de procesos. Está autorizada para operar, todo lo que necesita tener privilegios de root, o tienen la capacidad CAP_SETGID.
Nota: Esta función se puede utilizar (por ejemplo, no es de Windows y Android) en plataformas POSIX.
11 initgroups (usuario, extra_group)
Leer / etc / group, e inicializa la lista de acceso de grupo, todos los miembros del grupo se encuentran. Está autorizada para operar, todo lo que necesita tener privilegios de root, o tienen la capacidad CAP_SETGID.
Nota: Esta función se puede utilizar (por ejemplo, no es de Windows y Android) en plataformas POSIX.
12 kill (pid [señal])
Envía una señal al proceso. PID es el identificador de proceso, y la señal es la cadena que describe la señal transmitida. nombres de señales son cadenas como 'SIGINT' o 'SIGHUP'. Si se omite, la señal será 'SIGTERM'.
13 memoryUsage ()
Devuelve un objeto que describe el proceso utilizado por los bytes de memoria de estado de nodo.
14 nextTick (devolución de llamada)
Una vez que el final del ciclo de eventos actuales, volver a llamar funciones.
15 máscara de usuario ([máscara])
Establecer o leer máscara de archivo de proceso. Los procesos hijos heredan la máscara del proceso padre. Si el argumento es válido máscara, devuelve la vieja máscara. De lo contrario, devuelve la máscara actual.
16 el tiempo de actividad ()
Devuelve el número de nodo segundos ya se está ejecutando.
17 hrtime ()
Resolución de tiempo del proceso actual, en la forma [segundos, nanosegundos] matriz. Es con respecto a cualquier acontecimiento pasado. Este valor no tiene nada que ver con la fecha, por lo tanto, no afecta a la sincronización del reloj. El objetivo principal es a través del intervalo de tiempo preciso, para medir el rendimiento del programa.
Antes de que pueda pasar el resultado a la process.hrtime actual (), devolverá a la diferencia de tiempo entre los dos, para el intervalo de tiempo de referencia y medida.

Ejemplos

Crear un archivo main.js, el código de la siguiente manera:

// 输出当前目录
console.log('当前目录: ' + process.cwd());

// 输出当前版本
console.log('当前版本: ' + process.version);

// 输出内存使用情况
console.log(process.memoryUsage());

archivo main.js Ejecutivo, el código es el siguiente:

$ node main.js
当前目录: /web/com/w3big/nodejs
当前版本: v0.10.36
{ rss: 12541952, heapTotal: 4083456, heapUsed: 2157056 }