O melhor tutorial Node.js objeto global em 2024. Neste tutorial você pode aprender Objetos globais e variáveis ​​globais,__filename,__dirname,setTimeout (cb, ms),clearTimeout (t),setInterval (cb, ms),console,processo,

Node.js objeto global

JavaScript tem um objeto especial, chamado um objeto global (Global Object), ele e todos os seus atributos podem ser acessados ​​em qualquer lugar do programa, a variável global.

Navegador JavaScript geralmente é global janela de objeto, o objeto global Node.js é global, todas as variáveis ​​globais (excepto si global) são de propriedade de objeto global.

Em Node.js-nos acesso direto às propriedades globais, sem a necessidade de incluí-lo no aplicativo.


Objetos globais e variáveis ​​globais

O papel global mais fundamental como uma série variável global. Por ECMAScript definição satisfazer as seguintes condições são variáveis ​​globais:

  • Ultraperiféricas definidas variável;
  • Propriedades do objeto global;
  • Variável definida implicitamente (atribuição direta variáveis ​​indefinidas).

Quando você define uma variável global, a variável também passarão a ser propriedade do objeto global, e vice-versa. Note-se que, em Node.js você não pode definir variáveis ​​no exterior, porque todos os códigos de utilizador são parte do módulo atual, e o próprio módulo não é o contexto mais externo.

Nota: sempre use var para definir variáveis, a fim de evitar a introdução de uma variável global, porque as variáveis globais vão poluir o namespace, aumentar o risco de código de acoplamento.


__filename

__filename indica o nome do script a ser executado arquivo.Caminho absoluto para o local onde será o arquivo de saída, eo parâmetro de linha de comando e especificar o nome do arquivo não é necessariamente o mesmo. Se no módulo, o valor devolvido é o caminho para o arquivo de módulo.

Exemplos

Criar um main.js de arquivo, código da seguinte forma:

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

arquivo main.js Executivo, o código é a seguinte:

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

__dirname

__dirname representa o diretório de script atualmente em execução está localizado.

Exemplos

Criar um main.js de arquivo, código da seguinte forma:

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

arquivo main.js Executivo, o código é a seguinte:

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

setTimeout (cb, ms)

setTimeout (cb, ms) função global executa a função especificada após um determinado número de milissegundos (ms) Number (cb).: A função setTimeout () é especificado apenas uma vez.

Ele retorna um valor de identificador representa o timer.

Exemplos

Criar um main.js de arquivo, código da seguinte forma:

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

arquivo main.js Executivo, o código é a seguinte:

$ node main.js
Hello, World!

clearTimeout (t)

clearTimeout (t) é usado para interromper uma função global antes de passar setTimeout () para criar um temporizador.Parâmetrot por função setTimeout () para criar uma calculadora.

Exemplos

Criar um main.js de arquivo, código da seguinte forma:

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

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

arquivo main.js Executivo, o código é a seguinte:

$ node main.js

setInterval (cb, ms)

setInterval (cb, ms) função global executa a função especificada após um determinado número de milissegundos (ms) Number (cb).

Ele retorna um valor de identificador representa o timer. Você pode usar a funçãoclearInterval (t) para limpar o timer.

setInterval () método irá continuar a chamar a função até que o clearInterval () é chamado ou a janela está fechada.

Exemplos

Criar um main.js de arquivo, código da seguinte forma:

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

arquivo main.js Executivo, o código é a seguinte:

$ node main.js
Olá, mundo! Olá, mundo! Olá, mundo! Olá, mundo! Olá, mundo! ptptpt

O programa acima irá imprimir uma vez a cada dois segundos "Olá, mundo!", E será permanentemente a execução continua até que você pressione o botãoctrl + c.


console

consola console para fornecer a saída padrão, que é as ferramentas de depuração fornecidas pelo mecanismo JScript do Internet Explorer, mais tarde tornando-se o navegador padrão de fato.

Node.js segue esse padrão, fornece um comportamento consistente e hábitos do objeto console usado para o fluxo de saída padrão (stdout) ou caracteres de saída fluxo de erro padrão (stderr).

método de consola

O que se segue é o objeto console:

Não. Method & descrição
1 console.log ([data] [, pt. ])
Para os caracteres de impressão fluxo de saída padrão e terminar com uma nova linha. Este método leva vários parâmetros, se houver apenas um parâmetro, a cadeia deste parâmetro de saída. Se houver vários argumentos, lugares como o formato de saída do comando printf linguagem C ().
2 console.info ([data] [, pt. ])
P é o papel do comando retorna uma mensagem informativa, o comando é a diferença console.log não é grande, além do cromo só apresentam saída do texto, o resto vai mostrar um ponto de exclamação azul.
3 console.error ([data] [, pt. ])
Emitir uma mensagem de erro. Console será exibido em vermelho quando ocorre um erro garfo.
4 console.warn ([data] [, pt. ])
Mensagem de aviso é emitido. Console aparece com um ponto de exclamação amarelo.
5 console.dir (obj [, options])
Um objeto usado para verificar (inspecionar), e fácil de ler formatos de visualização e impressão.
6 console.time (etiqueta)
A saída do tempo, o tempo de início.
7 console.timeEnd (etiqueta)
End tempo, indicando o fim da temporização.
8 console.trace (message [, pt.])
Código está sendo executado o caminho de chamada na pilha, executar esta função teste é útil, quer apenas testar a função dos quais se juntou console.trace na linha.
9 console.assert (valor [, mensagem] [ , pt.])
Para determinar se uma variável ou expressão é verdade, demorou dois parâmetros, o primeiro parâmetro é a expressão eo segundo argumento é uma string. Só quando o primeiro argumento é falso, a saída será o segundo argumento, não teria nenhum resultado.
console.log (): imprimir para o fluxo de saída padrão e termina com um caractere de nova linha.

console.log aceita vários parâmetros, se houver apenas um parâmetro, a cadeia deste parâmetro de saída. Se houver vários argumentos, lugares como o formato de saída do comando printf linguagem C ().

O primeiro parâmetro é uma cadeia, sem parâmetros, imprimir apenas uma nova linha.

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

Os resultados operacionais da seguinte forma:

Hello world 
byvoid%diovyb 
byvoid1991iovyb 
  • console.error (): com console.log () utiliza a mesma, mas a saída para o fluxo de erro padrão.
  • console.trace (): fluxo de erro na saída padrão a pilha de chamadas atual.
console.trace();

Os resultados operacionais da seguinte forma:

Trace: 
at Object.<anonymous> (/home/byvoid/consoletrace.js:1:71) 
at Module._compile (module.js:441:26) 
at Objectptjs (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)

Exemplos

Criar um main.js de arquivo, código da seguinte forma:

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

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

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

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

arquivo main.js Executivo, o código é a seguinte:

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

processo

processo é uma variável global que atribuem objeto global.

Ele é usado para descrever o estado atual do processo Node.js objeto, ele fornece uma interface simples para o sistema operacional. Normalmente você escreve programa de linha de comando nativa, e, finalmente, para lidar com ele. A seguir irá introduzir algum do método mais comumente usado de processo de membros do objeto.

Não. Eventos & Descrição
1 saída
Dispara quando o processo está pronto para sair.
2 beforeExit
Este evento é acionado quando o nó vazio ciclo de eventos, e há outros arranjos. Geralmente, quando não existe um processo para organizar o nó de saída, mas os ouvintes 'beforeExit' pode ser chamado de forma assíncrona, de modo que o nó irá continuar.
3 uncaughtException
Quando uma exceção borbulhando de volta para o ciclo de eventos, disparar esse evento. Se você adicionar um monitor para a exceção, a ação padrão (imprimir um rastreamento de pilha e saída) não irá ocorrer.
4 Sinal é acionado quando o evento<br> quando o processo recebe um sinal. Veja uma lista de nomes de sinal POSIX padrão de sinal, como SIGINT, SIGUSR1 e assim por diante.

Exemplos

Criar um main.js de arquivo, código da seguinte forma:

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

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

arquivo main.js Executivo, o código é a seguinte:

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

códigos de status de saída

códigos de status de saída são as seguintes:

Código de Status Título e Descrição
1 Exceção fatal Uncaught
Há exceção não capturada, e não foi processado ou domínio manipulador uncaughtException.
2 não usado
retenção
3 Erro JavaScript Parse interna
código-fonte JavaScript analisar erro causado ao iniciar processo de Node. Muito raramente, apenas quando não haverá no desenvolvimento de nó.
4 Falha Avaliação JavaScript interna
processo de inicialização fonte Nó JavaScript, quando se avalia a função retorna falha. Muito raramente, apenas quando não haverá no desenvolvimento de nó.
5 Erro fatal
V8 em erro irrecuperável fatal. Normalmente imprimir em stderr, conteúdo: ERRO FATAL
6 Não função de manipulador de exceção interna
exceção não capturada, manipulador de exceção dentro de alguma forma definida em função, e não pode ser chamado.
7 Exceção interna Handler Run-Time Falha
exceção não capturada, e o manipulador de exceção para lidar com a sua própria lança uma exceção. Por exemplo, se process.on ( 'uncaughtException') ou domain.on ( 'error') lança uma exceção.
8 não usado
retenção
9 Argumento inválido
Ele pode ser desconhecido para os parâmetros ou parâmetro para nenhum valor.
10 Falha interna JavaScript Run-Time
código-fonte JavaScript é lançada quando iniciar erros de processo Node, muito raros, somente quando haverá no desenvolvimento de Node.
12 Argumento de depuração inválido
conjunto --debug Parameter e / ou --debug-BRK, mas escolheu a porta errada.
> 128 As saídas de sinal
Se Nó recebe um sinal fatal, como SIGKILL ou SIGHUP, em seguida, o código de saída é de 128, mais o código de sinal. Esta é a prática padrão Unix, código elevado nos sinais de saída.

atributos de processo

Processo fornece muitas propriedades úteis, facilidade de interação que nós podemos controlar melhor o sistema:

Número. Property & Descrição
1 stdout
fluxo de saída padrão.
2 stderr
fluxo de erro padrão.
3 stdin
fluxo de entrada padrão.
4 argv
argv propriedade retorna uma matriz de vários parâmetros na linha de comando de execução de script quando a composição. Seus primeiros membros são sempre nó, o segundo membro é o nome do arquivo script e os membros restantes são os parâmetros do arquivo de script.
5 execPath
Retorna o caminho absoluto dos binários atuais Nó execução do script.
6 execArgv
Retorna um membro da matriz está sob o script de linha de comando é executado entre os parâmetros executáveis ​​Nó de linha de comando do arquivo de script.
7 env
Retorna um objeto, os membros da variável de ambiente shell atual
8 exitCode
código de saída para o processo, se o processo oferecida por process.exit exit (), sem especificar um código de saída.
9 versão
versão de nó, tais v0.10.18.
10 versões
Uma propriedade que contém as versões de nó e dependências.
11 configuração
Objeto que contém o nó atual é usado para compilar o arquivo executável javascript opções de configuração. É o mesmo script run ./configure arquivo gerado "config.gypi".
12 pid
O número atual processo.
13 título
nome do processo, o padrão é "nó", você pode personalizar o valor.
14 arco
O atual arquitetura de CPU: 'braço', 'ia32' ou 'x 64'.
15 plataforma
Execute o programa onde a plataforma 'Darwin', 'FreeBSD', 'linux', 'SunOS "ou" win32 "
16 mainModule
require.main métodos alternativos. ponto diferente, se o módulo principal é alterado em tempo de execução, require.main podem continuar a voltar ao antigo módulo. Acredita-se que ambos se referem ao mesmo módulo.

Exemplos

Criar um main.js de arquivo, código da seguinte forma:

// 输出到终端
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);

arquivo main.js Executivo, o código é a seguinte:

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

Método Manual de Referência

Processo fornece uma série de métodos úteis para facilitar um melhor controle do nosso sistema interativo:

Não. Method & descrição
1 abortar ()
Isso fará com que o evento nó abort gatilho. Ele vai sair nó e gerar um arquivo de núcleo.
2 chdir (diretório)
Altere o diretório de trabalho atual do processo, se a operação falhar jogar.
3 cwd ()
Retorna o diretório de trabalho do processo atual
4 exit ([code])
O final do processo com o código especificado. Se for omitido, ele irá usar o código 0.
5 getgid ()
Obter identificação de grupo de processo (ver getgid (2)). Quando o grupo foi adquirido identificação digital, não o nome.
Nota: Esta função pode ser usada (por exemplo, não-Windows e Android) somente em plataformas POSIX.
6 setgid (id)
Definir processo de identificação de grupo (Veja setgid (2)). Você pode receber um ID ou nome do grupo digital. Se você especificar um nome de grupo irá resolver para bloquear à espera de uma ID digital.
Nota: Esta função pode ser usada (por exemplo, não-Windows e Android) somente em plataformas POSIX.
7 getuid ()
Obter processo de identificação do usuário (veja getuid (2)). Este é um ID de usuário numérico, não o nome do usuário.
Nota: Esta função pode ser usada (por exemplo, não-Windows e Android) somente em plataformas POSIX.
8 setuid (id)
processo de definição de ID do usuário (veja setuid (2)). Receber um ID ou cadeia de nome digital. Se você especificar um nome de grupo irá resolver para bloquear à espera de uma ID digital.
Nota: Esta função pode ser usada (por exemplo, não-Windows e Android) somente em plataformas POSIX.
9 getgroups ()
Voltar matriz ID do grupo de processo. sistema POSIX não garante que não existe, mas não é node.js garantida.
Nota: Esta função pode ser usada (por exemplo, não-Windows e Android) somente em plataformas POSIX.
10 setgroups (grupos)
Definir ID de grupo de processo. É autorizada a operar, tudo que você precisa ter privilégios de root, ou ter capacidade CAP_SETGID.
Nota: Esta função pode ser usada (por exemplo, não-Windows e Android) somente em plataformas POSIX.
11 initgroups (usuário, extra_group)
Leia / etc / group, e inicializa a lista de acesso de grupo, todos os membros do grupo estão localizados. É autorizada a operar, tudo que você precisa ter privilégios de root, ou ter capacidade CAP_SETGID.
Nota: Esta função pode ser usada (por exemplo, não-Windows e Android) somente em plataformas POSIX.
12 kill (pid [, sinal])
Envia um sinal para o processo. Pid é o ID do processo, eo sinal é a cadeia de caracteres descrevendo o sinal transmitido. nomes de sinal são cadeias como 'SIGINT "ou" SIGHUP'. Se omitido, o sinal vai ser 'SIGTERM'.
13 MemoryUsage ()
Ele retorna um objeto que descreve o processo usado pelos bytes de memória de estado Node.
14 nextTick (callback)
Uma vez que o fim do ciclo de eventos atual, chamar de volta funções.
15 umask ([máscara])
Definir ou ler máscara de arquivo do processo. processos filhos herdam a máscara do processo pai. Se o argumento máscara é válido, ele retorna a velha máscara. Caso contrário, ele retorna a máscara atual.
16 uptime ()
Retorna o número de segundos Nó já está em execução.
17 hrtime ()
resolução de tempo do processo atual, sob a forma [segundos, nanossegundos] array. É com respeito a qualquer evento passado. Este valor não tem nada a ver com a data, portanto, não afetam a deriva relógio. O objectivo principal é através do intervalo de tempo preciso, para medir o desempenho do programa.
Antes de você pode passar o resultado para o process.hrtime actual (), ele irá retornar para a diferença de tempo entre os dois, para o intervalo de tempo de referência e medição.

Exemplos

Criar um main.js de arquivo, código da seguinte forma:

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

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

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

arquivo main.js Executivo, o código é a seguinte:

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