Ao tentar ler dados em Node. js de um processo filho ImageMagick, ele sai corrompido. Um caso de teste simples seria o seguinte: Espero que seja o equivalente à linha de comando converter ./test. jpg - gt test2.jpg que não escrever o arquivo binário corretamente. Originalmente havia um problema com a opção maxBuffer sendo muito pequena e resultando em um arquivo truncado. Depois de aumentar isso, o arquivo agora aparece um pouco maior do que o esperado e ainda corrompido. Os dados do stdout são necessários para enviar sobre HTTP. Qual seria a maneira correta de ler esses dados a partir do ImageMagick stdout perguntado May 28 11 at 20:09 Se timeout for maior que 0, em seguida, ele irá matar o processo filho se ele executa mais de tempo limite milissegundos. O processo filho é morto com killSignal (padrão: SIGTERM). MaxBuffer especifica a maior quantidade de dados permitida em stdout ou stderr - se esse valor for excedido, o processo filho será morto. Portanto, se sua imagem estiver acima do tamanho do buffer padrão de 2001024 bytes, sua imagem será corrompida como mencionado. Eu era capaz de fazê-lo funcionar com o seguinte código: Aqui eu usei spawn para obter um stdout streamable, então eu usei um Writeable Stream para escrever os dados em formato binário. Apenas o testei e pude abrir a imagem resultante de test2.jpg. EDIT. Sim, você pode usar isso para enviar o resultado sobre HTTP. Heres um exemplo de me downsizing uma imagem com converter, em seguida, postar o resultado para o glowfoto API: answer May 28 11 at 20:57 Obrigado, it39s true Eu perdi completamente a opção maxBuffer, mas doesn39t parece resolver a corrupção. Se você ampliar isso com o meu exemplo o arquivo resultante não é muito pequeno, mas ainda corrompido. Seu exemplo funciona, mas eu realmente preciso fazer mais com os dados do que canalizá-lo diretamente para outro arquivo. Mais especificamente, eu precisaria escrevê-lo em uma resposta HTTP usando a estrutura expressa, por exemplo. Ndash Daniel Cremer May 28 11 at 22:06 Daniel Eu só tentei, mudando a linha de spawn para. Var convert spawn (39convert39, 39test. jpg39, 39-resize39, 395039, 39-39) e obteve um arquivo JPEG de trabalho reduzido 50. Tente atualizar sua postagem com o que você tem agora. Ndash onteria 28 de maio às 22: 12Storing de dados com fluxos graváveis Node. js Este tutorial explicará como armazenar dados com fluxos graváveis Node. js e como criar seu próprio fluxo gravável personalizado. Informações sobre a versão Autor: Jeff Barczewski Publicado em: 18 de agosto de 2013 Tags: nodejs, streams Nível: Intermediário Pré-requisitos: buffers, eventos, instalar npm modules Node. js v0.10 (último estável é v0.10.16 até à data desta redação) Geralmente têm sido uma parte do Node. js desde seus primeiros dias Streams2 Writable classe abstrata pode ser usado com versões mais antigas (antes de v0.10) do nó usando o módulo npm readable-stream (testado com v1.0.15) Armazenando dados com gravável Córregos Escrever arquivo de texto O exemplo mais simples é apenas por escrito utf8 texto, uma vez que a codificação padrão se você escrever seqüências de caracteres é utf8. Se você quiser escrever seqüências de caracteres com uma codificação diferente, então você pode simplesmente alterar a linha createWriteStream ou adicionar codificação para cada gravação. Escrevendo arquivo binário Escrever um arquivo binário é apenas uma questão de usar Buffers em vez de seqüências de caracteres para a gravação. No exemplo acima, eu uso crypto. createRandomBytes () para criar um Buffer de dados, mas você pode usar dados binários que você cria ou lê de outra fonte tão facilmente. Saber quando arquivo foi escrito Entrada e saída são operações assíncronas em Node. js Então, o que se queremos saber quando um arquivo foi totalmente escrito A resposta é a configuração de ouvintes para eventos que o fluxo emite. O evento finish (adicionado em Node. js v0.10) indica que todos os dados foram liberados para o sistema subjacente. Em Node. js antes de v0.10, você poderia adicionar um cb para o. end () para obter uma indicação de quando que tinha sido liberado, no entanto terminar leva em conta quaisquer outras transformações a jusante e tal. Criando fluxos graváveis Node. js personalizados Quando você precisa criar seu próprio fluxo gravável personalizado para armazenar dados em um banco de dados ou em outra facilidade de armazenamento, é fácil se você usar a nova classe abstrata de Streams2 Writable disponível nativamente em Node. js 0.10 ou via Npm polyfill módulo readable-stream. Para criar um fluxo gravável que implementa todo o comportamento de fluxo Node. js normal, você só tem que subclassar Writeable e implementar write (chunk, encoding, cb). Criando fluxo de memória gravável Aqui está um exemplo que está escrevendo em um armazenamento de dados simples na memória. Estamos usando o nome dado na criação do fluxo como a chave, e acrescentamos dados ao valor até terminar. Os fluxos graváveis são elegantes e simples de usar. Escrever texto ou dados binários para fluxos Node. js é fácil, e até mesmo criar fluxos graváveis personalizados totalmente funcionais é uma caminhada no parque com a nova funcionalidade streams2 introduzida em Node. js v0.10 (ou Utilizando o módulo de leitura de fluxo polifilho). Para leitura adicional Siga-me Compartilhar esta páginaLeitura de texto e dados binários com fluxos legíveis Node. js Este tutorial irá explicar o uso ea criação de fluxos read. js readable: Informações da versão Autor: Jeff Barczewski Publicado em: 3 de agosto de 2013 Tags: nodejs, streams Nível: Intermediário Pré-requisitos: criptografia, eventos, instalação de módulos npm Node. js v0.10 (último estável é v0.10.15 desde esta redação), mas os streams geralmente têm sido parte do Node. js desde seus primeiros dias Streams2 pode ser usado Com versões mais antigas do nó usando o módulo npm readable-stream Consumindo ou usando fluxos legíveis Exemplo simples de leitura de um arquivo e ecoando para stdout: Criando um sha1 digest de um arquivo e ecoando o resultado para stdout (similar a shasum): Os dados Evento é disparado no fluxo legível para cada pedaço de dados, para que você atualizar o digest com para cada pedaço como você vai, então finalmente o evento final é acionado quando o fluxo terminou para que você possa produzir o resultado final. Note que cada vez que você chama. on () para registrar um ouvinte ele retorna o fluxo original para que você possa encadear métodos facilmente. Com Node. js 0.10 existe uma maneira melhor de consumir fluxos. A interface Readable facilita o trabalho com fluxos, especialmente os fluxos onde você deseja fazer outras coisas entre criar um fluxo e usar o fluxo. Esses fluxos Readable mais recentes são pull streams onde você solicita os dados quando você é lido para ele, em vez de ter os dados empurrados para você. A chave para entender este exemplo é que com a nova interface de leitura de streams2, um evento legível será emitido assim que os dados estiverem disponíveis para serem lidos e você pode chamar. read () para ler pedaços dela. Uma vez que não há mais dados disponíveis. Read () retorna null, mas então outro evento legível é acionado novamente quando os dados estiverem disponíveis novamente. Isso continua até o final do arquivo quando final é acionado como antes. Produzindo um fluxo legível Para usar fluxos com o sistema de arquivos ou de http, você pode usar os métodos core fs e http para construir um fluxo, mas como você criaria seu próprio fluxo e o preencheria com dados. Isso pode ser dados de um banco de dados ou De qualquer número de fontes. Aqui está um exemplo de criação de um fluxo legível que é gerado a partir de dados binários aleatórios, em seguida, hash como antes. Isso seria útil na criação de fluxos para testes: Nota: depois de ler () é chamado, devemos continuar lendo até terminar ou até push () retornar false. Usando Streams2 com versões mais antigas do Node. js Se você quiser fazer com que este código funcione com o Node. js mais antigo que 0.10, você pode incluir uma dependência para readable-stream em seu pacote. json e alterar a linha 5 para ler: Fluxo legível se Node. js versão é 0.10 e se não, então ele irá carregar o módulo polyfill readable-stream e usá-lo a partir daí. Pausa / retomar do stream e do Streams2 Uma vez que os fluxos podem fornecer dados mais rapidamente do que um aplicativo pode consumi-lo, os fluxos incluem a capacidade de pausar e os dados são armazenados em buffer até que o fluxo seja retomado. Antes dos streams2, você precisaria prestar muita atenção aos métodos de pausa e retomada, bem como o buffer dos dados até ser retomado. No entanto, a opção Readable de streams2 (Node. js 0.10 ou através do pacote readable-stream) implementa que a funcionalidade para você e os streams são pausados automaticamente até que. read () seja chamado. Você também pode envolver fluxos antigos com uma legível para implementar a nova interface no fluxo antigo: Outra situação em que você precisa se preocupar com pausa e currículo é se o seu código de consumo usa a interface de estilo push antigo chamando. on (39data39, ouvinte). Isso coloca o fluxo no modo de compatibilidade com versões anteriores e você precisaria chamar. pause () e. resume () para controlar a taxa de dados que chegam à sua aplicação. Consulte os documentos da API do Stream para obter detalhes se você estiver usando a interface mais antiga no seu código. Fluxos de objetos Inicialmente, quando os fluxos foram introduzidos, a API oficial indicava que os pedaços de dados sendo transmitidos seriam Buffers ou strings, porém muitos usuários descobriram que era ótimo poder transmitir objetos também. Streams2 no Node. js 0.10 adicionou um modo de objeto a fluxos para formalizar como isso deve funcionar. Quando no modo de objeto. Read (n) simplesmente retorna o próximo objeto (ignorando o n). Para alternar um fluxo em modo de objeto, defina a propriedade objectMode como true nas opções usadas para criar o fluxo Readable. Assim, você pode usar objetos em fluxos tão facilmente quanto você pode usar Buffers e strings, mas a única limitação é que os objetos que você Pass não pode ser nulo uma vez que irá indicar que o fluxo foi encerrado. Node. js fluxos legíveis são flexíveis e simples Node. js legível fluxos são fáceis de consumir e até mesmo simples de construir. Você não pode apenas transmitir dados binários e de seqüência de caracteres, mas também objetos e ainda aproveitar a funcionalidade de fluxo. Espero que tenha gostado desta rápida visita a riachos legíveis, deixe-me saber se tiver alguma dúvida. Para leitura adicional Siga-me Compartilhar esta páginaNode. js v6.7.0 Documentação O módulo repl fornece uma implementação Read-Eval-Print-Loop (REPL) que está disponível tanto como um programa autônomo ou includable em outras aplicações. Ele pode ser acessado usando: Design e Recursos O módulo repl exporta a classe repl. REPLServer. Durante a execução, instâncias de repl. REPLServer aceitarão linhas individuais de entrada do usuário, avaliá-las de acordo com uma função de avaliação definida pelo usuário e, em seguida, exibir o resultado. Entrada e saída podem ser de stdin e stdout. Respectivamente, ou podem ser conectados a qualquer fluxo Node. js. As instâncias de repl. REPLServer suportam a conclusão automática das entradas, a edição de linha simplificada do estilo de Emacs, as entradas multi-line, a saída denominada ANSI, poupando e restaurando o estado atual da sessão de REPL, a recuperação do erro, e as funções de avaliação customizáveis. Comandos e Chaves Especiais Os seguintes comandos especiais são suportados por todas as instâncias REPL:.break - Quando no processo de introdução de uma expressão de múltiplas linhas, introduzir o comando. break (ou pressionar a combinação de teclas ltctrlgt-C) abortará mais entradas ou Processamento dessa expressão..clear - Restaura o contexto REPL para um objeto vazio e limpa qualquer expressão de linha múltipla sendo inserida..exit - Feche o fluxo de E / S, fazendo com que a REPL saia..help - Mostra esta lista de comandos especiais..save - Salva a sessão REPL atual em um arquivo: gt. save ./file/to/save. js. load - Carrega um arquivo na sessão REPL atual. Gt. load ./file/to/load. js. editor - Entre no modo de editor (ltctrlgt-D para terminar, ltctrlgt-C para cancelar) As seguintes combinações de teclas na REPL têm esses efeitos especiais: ltctrlgt-C - , Tem o mesmo efeito que o comando. break. Quando pressionado duas vezes em uma linha em branco, tem o mesmo efeito que o comando. exit. Ltctrlgt-D - Tem o mesmo efeito que o comando. exit. Lttabgt - Quando pressionado em uma linha em branco, exibe variáveis globais e locais (escopo). Quando pressionado ao inserir outra entrada, exibe as opções de autocompletar relevantes. Padrão de avaliação Por padrão, todas as instâncias de repl. REPLServer usam uma função de avaliação que avalia expressões JavaScript e fornece acesso aos módulos internos Node. js39. Esse comportamento padrão pode ser substituído passando em uma função de avaliação alternativa quando a instância repl. REPLServer é criada. Expressões de JavaScript O avaliador padrão suporta a avaliação direta de expressões JavaScript: A menos que seja definido o escopo dentro de blocos (por exemplo) ou funções, as variáveis declaradas implicitamente ou usando a palavra-chave var são declaradas no escopo global. Âmbito Global e Local O avaliador padrão fornece acesso a todas as variáveis que existem no escopo global. É possível expor uma variável para o REPL explicitamente, atribuindo-o ao objeto de contexto associado a cada REPLServer. Por exemplo: As propriedades no objeto de contexto aparecem como locais dentro da REPL: É importante observar que as propriedades de contexto não são somente leitura por padrão. Para especificar globais somente leitura, as propriedades de contexto devem ser definidas usando Object. defineProperty (): Acessando Módulos Core Node. js O avaliador padrão carregará automaticamente os módulos principais Node. js no ambiente REPL quando usado. Por exemplo, a menos que declarado de outra forma como uma variável global ou escopo, a entrada fs será avaliada sob demanda como global. fs require (39fs39). Atribuição da variável (sublinhado) O avaliador padrão atribuirá, por padrão, o resultado da expressão avaliada mais recentemente à variável especial (sublinhado). Definir explicitamente como um valor desativará esse comportamento. Funções de avaliação personalizada Quando um novo repl. REPLServer é criado, uma função de avaliação personalizada pode ser fornecida. Isto pode ser usado, por exemplo, para implementar aplicações REPL totalmente personalizadas. O seguinte ilustra um exemplo hipotético de um REPL que executa a tradução de texto de um idioma para outro: Erros Recuperáveis Como um usuário está digitando entrada no prompt REPL, pressionando a tecla ltentergt enviará a linha atual de entrada para a função eval. Para suportar a entrada multi-line, a função eval pode retornar uma instância de repl. Recoverable à função de retorno de chamada fornecida: Customizing REPL Output Por padrão, instâncias repl. REPLServer formatam saída usando o método util. inspect () antes de escrever a saída Para o fluxo de gravação fornecido (process. stdout por padrão). A opção booleana useColors pode ser especificada na construção para instruir o escritor padrão a usar códigos de estilo ANSI para colorir a saída do método util. inspect (). É possível personalizar completamente a saída de uma instância repl. REPLServer passando uma nova função ao usar a opção writer na construção. O exemplo a seguir, por exemplo, simplesmente converte qualquer texto de entrada em maiúsculas: Classe: REPLServer A classe repl. REPLServer herda da classe readline. Interface. As instâncias de repl. REPLServer são criadas usando o método repl. start () e não devem ser criadas diretamente usando a nova palavra-chave JavaScript. Evento: 39exit39 O evento 39exit39 é emitido quando o REPL é saído ou recebendo o comando. exit como entrada, o usuário pressionando ltctrlgt-C duas vezes para sinalizar SIGINT. Ou pressionando ltctrlgt-D para o sinal 39end39 no fluxo de entrada. O callback do listener é invocado sem quaisquer argumentos. Evento: 39reset39 O evento 39reset39 é emitido quando o contexto REPL39s é redefinido. Isso ocorre sempre que o comando. clear é recebido como entrada, a menos que o REPL esteja usando o avaliador padrão ea instância repl. REPLServer foi criada com a opção useGlobal definida como true. O retorno de chamada do ouvinte será chamado com uma referência ao objeto de contexto como o único argumento. Isso pode ser usado principalmente para reinicializar o contexto REPL para algum estado predefinido, conforme ilustrado no exemplo simples a seguir: Quando este código é executado, a variável global 39m39 pode ser modificada, mas então redefinir para seu valor inicial usando o comando. clear : Palavra-chave replServer. defineCommand (palavra-chave, cmd) ltStringgt A palavra-chave de comando (sem um caractere principal.). Cmd ltObjectgt ltFunctiongt A função a ser chamada quando o comando é processado. O método replServer. defineCommand () é usado para adicionar novos. - prefixed comandos para a instância REPL. Esses comandos são invocados digitando a. Seguido da palavra-chave. O cmd é uma função ou um objeto com as seguintes propriedades: help ltStringgt Texto de ajuda a ser exibido quando. help é inserido (Opcional). Action ltFunctiongt A função a executar, opcionalmente aceitando um único argumento de string. O exemplo a seguir mostra dois novos comandos adicionados à instância REPL: Os novos comandos podem ser usados a partir da instância REPL: replServer. displayPrompt (preserveCursor) O método replServer. displayPrompt () prepara a instância REPL para entrada do usuário, O prompt configurado para uma nova linha na saída e retomando a entrada para aceitar nova entrada. Quando a entrada de várias linhas está sendo inserida, uma reticência é impressa em vez da 39prompt39. Quando preserveCursor é true. O posicionamento do cursor não será redefinido para 0. O método replServer. displayPrompt destina-se principalmente a ser chamado a partir da função de ação para comandos registrados usando o método replServer. defineCommand (). Opções repl. start (opções) ltObjectgt prompt ltStringgt O prompt de entrada a ser exibido. O padrão é gt. Input ltReadablegt O fluxo Readable a partir do qual a entrada REPL será lida. O padrão é process. stdin. Output ltWritablegt O fluxo de gravação para o qual a saída REPL será gravada. O padrão é process. stdout. Terminal ltbooleangt Se verdadeiro. Especifica que a saída deve ser tratada como um terminal TTY e ter códigos de escape ANSI / VT100 escritos para ele. O padrão é verificar o valor da propriedade isTTY no fluxo de saída após a instanciação. Eval ltFunctiongt A função a ser usada ao avaliar cada linha de entrada. Padrão para um wrapper async para a função JavaScript eval (). Uma função eval pode erro com repl. Recoverable para indicar a entrada estava incompleta e prompt para linhas adicionais. UseColors ltbooleangt Se true. Especifica que a função de gravador padrão deve incluir estilo de cor ANSI para saída REPL. Se for fornecida uma função de escrita personalizada, isso não terá efeito. Padrão para o valor do terminal de instâncias REPL. UseGlobal ltbooleangt Se true. Especifica que a função de avaliação padrão usará o JavaScript global como o contexto ao contrário de criar um novo contexto separado para a instância REPL. O padrão é false. IgnoreUndefined ltbooleangt Se true. Especifica que o gravador padrão não exibirá o valor de retorno de um comando se ele for avaliado como indefinido. O padrão é false. Writer ltFunctiongt A função a invocar para formatar a saída de cada comando antes de escrever para a saída. Padrões para util. inspect (). Finter ltFunctiongt Uma função opcional usada para a conclusão automática da guia Tab. Consulte readline. InterfaceCompleter para obter um exemplo. ReplMode - Um sinalizador que especifica se o avaliador padrão executa todos os comandos JavaScript no modo estrito, no modo padrão ou em um modo híbrido (quotmagicquot mode.) Valores aceitáveis são: repl. REPLMODESLOPPY - avalia expressões no modo descuidado. Repl. REPLMODESTRICT - avalia expressões no modo estrito. Isto é equivalente a prefacing cada declaração repl com 39use strict39. Repl. REPLMODEMAGIC - tenta avaliar expressões no modo padrão. Se as expressões falharem para analisar, tente novamente no modo estrito. BreakEvalOnSigint - Pare de avaliar o pedaço de código atual quando SIGINT é recebido, ou seja, CtrlC é pressionado. Isso não pode ser usado em conjunto com uma função eval personalizada. O padrão é false. O método repl. start () cria e inicia uma instância repl. REPLServer. O Node. js REPL Node. js usa o módulo repl para fornecer sua própria interface interativa para execução de JavaScript. Isso pode ser usado executando o binário Node. js sem passar nenhum argumento (ou passando o argumento - i): Opções de Variáveis de Ambiente Vários comportamentos do Node. js REPL podem ser personalizados usando as seguintes variáveis de ambiente: NODEREPLHISTORY - Quando um caminho válido É fornecido, o histórico REPL persistente será salvo no arquivo especificado em vez de. nodereplhistory no diretório inicial do usuário. Definir esse valor para quotquot desativará o histórico de REPL persistente. Espaço em branco será aparado a partir do valor. NODEREPLHISTORYSIZE - Padrão para 1000. Controla quantas linhas do histórico serão persistidas se o histórico estiver disponível. Deve ser um número positivo. NODEREPLMODE - Pode ser qualquer um desleixado. rigoroso. Ou magia. Padrões para magia. Que irá executar automaticamente quotstrict modo onlyquot instruções no modo estrito. Histórico Persistente Por padrão, o REPL Node. js irá persistir o histórico entre as sessões REPL do nó, salvando entradas em um arquivo. nodereplhistory localizado no diretório inicial do usuário. Isso pode ser desativado, definindo a variável de ambiente NODEREPLHISTORYquotquot. NODEREPLHISTORYFILE Anteriormente em Node. js / io. js v2.x, o histórico do REPL foi controlado usando uma variável de ambiente NODEREPLHISTORYFILE eo histórico foi salvo no formato JSON. Esta variável foi agora obsoleta e o antigo arquivo histórico do JSON REPL será convertido automaticamente para um formato de texto simples simplificado. Este novo arquivo será salvo no diretório home do usuário ou em um diretório definido pela variável NODEREPLHISTORY, conforme documentado nas Opções de Variáveis de Ambiente. Usando o Node. js REPL com avançados editores de linha Para editores de linha avançados, inicie Node. js com a variável de ambiente NODENOREADLINE1. Isso irá iniciar o REPL principal e depurador em configurações de terminal canônico que permitirá que você use com rlwrap. É possível criar e executar várias instâncias REPL contra uma única instância em execução de Node. js que compartilham um único objeto global, mas que possuem separadas I / O interfaces. O exemplo a seguir, por exemplo, fornece REPLs separados em stdin. Um soquete Unix e um soquete TCP: Executando este aplicativo a partir da linha de comando irá iniciar um REPL em stdin. Outros clientes REPL podem se conectar através da soquete Unix ou soquete TCP. Telnet Por exemplo, é útil para conexão com soquetes TCP, enquanto socat pode ser usado para conectar-se a Unix e TCP sockets. Ao iniciar um REPL de um servidor baseado em soquetes Unix em vez de stdin, é possível se conectar a um processo Node. js de longa execução sem reiniciá-lo. Para um exemplo de execução de um REPL quotfull-featuredquot (terminal) sobre uma instância net. Server e net. Socket, consulte: gist. github / 2209310 Para um exemplo de execução de uma instância REPL sobre curl (1). Consulte: gist. github / 2053342Node. js v6.7.0 Documentação Conteúdo File System File I / O é fornecido por wrappers simples em torno de funções padrão POSIX. Para usar este módulo é necessário (39fs39). Todos os métodos têm formas assíncronas e síncronas. O formulário assíncrono sempre leva um retorno de chamada de conclusão como seu último argumento. Os argumentos passados para o retorno de chamada de conclusão dependem do método, mas o primeiro argumento é sempre reservado para uma exceção. Se a operação foi concluída com êxito, o primeiro argumento será nulo ou indefinido. Ao usar o formulário síncrono todas as exceções são imediatamente lançadas. Você pode usar try / catch para lidar com exceções ou permitir que eles borbulham. Aqui está um exemplo da versão assíncrona: Aqui está a versão síncrona: Com os métodos assíncronos não há garantia de ordenação. Portanto, o seguinte é propenso a erro: Pode ser que fs. stat é executado antes de fs. rename. A maneira correta de fazer isso é encadear os retornos de chamada. Em processos ocupados, o programador é fortemente incentivado a usar as versões assíncronas dessas chamadas. As versões síncronas bloquearão todo o processo até concluírem - interromper todas as conexões. O caminho relativo para um nome de arquivo pode ser usado. Lembre-se, no entanto, que este caminho será relativo a process. cwd (). A maioria das funções fs permitem omitir o argumento de retorno de chamada. Se você fizer isso, um retorno de chamada padrão é usado que rethrows erros. Para obter um rastreamento para o site de chamada original, defina a variável de ambiente NODEDEBUG: Buffer API fs funções suporte passando e recebendo caminhos como seqüências de caracteres e Buffers. O último destina-se a tornar possível trabalhar com sistemas de arquivos que permitem nomes de arquivos não-UTF-8. Para a maioria dos usos típicos, trabalhar com caminhos como Buffers será desnecessário, como a seqüência de caracteres API converte para e de UTF-8 automaticamente. Observe que em determinados sistemas de arquivos (como NTFS e HFS) os nomes de arquivos sempre serão codificados como UTF-8. Em tais sistemas de arquivos, passar Buffers não-UTF-8 codificado para funções fs não funcionará como esperado. Classe: fs. FSWatcher Objetos retornados de fs. watch () são deste tipo. O callback ouvinte fornecido para fs. watch () recebe os eventos de alteração FSWatcher39s retornados. O próprio objeto emite esses eventos: Evento: 39change39 Emitido quando algo é alterado em um diretório ou arquivo assistido. Veja mais detalhes em fs. watch (). O argumento filename pode não ser fornecido dependendo do suporte do sistema operacional. Se o nome do arquivo for fornecido, ele será fornecido como um Buffer se fs. watch () for chamado com a opção de codificação de it39s definida como 39buffer39. Caso contrário, o nome do arquivo será uma string. Evento: 39error39 Emitido quando ocorre um erro. Watcher. close () Emitido quando o descritor de arquivo subjacente do WriteStream 39s foi fechado usando o método fs. close (). WriteStream. bytesWritten O número de bytes escritos até agora. Não inclui dados que ainda estão em fila para gravação. WriteStream. path O caminho para o arquivo que o fluxo está gravando conforme especificado no primeiro argumento para fs. createWriteStream (). Se o caminho for passado como uma string, writeStream. path será uma string. Se o caminho for passado como um Buffer. Então writeStream. path será um Buffer. Fs. access (path, mode, callback) Adicionado em: v0.11.15 Testa as permissões de um usuário para o arquivo ou diretório especificado pelo caminho. O argumento mode é um inteiro opcional que especifica as verificações de acessibilidade a serem executadas. As seguintes constantes definem os valores possíveis de modo. É possível criar uma máscara que consiste no OR bit a bit de dois ou mais valores. Fs. constants. FOK - o caminho é visível para o processo de chamada. Isso é útil para determinar se um arquivo existe, mas não diz nada sobre as permissões rwx. Padrão se nenhum modo for especificado. Fs. constants. ROK - o caminho pode ser lido pelo processo de chamada. Fs. constants. WOK - path pode ser escrito pelo processo de chamada. Fs. constants. XOK - path pode ser executado pelo processo de chamada. Isso não tem nenhum efeito no Windows (vai se comportar como fs. constants. FOK). O argumento final, callback. É uma função de chamada de retorno que é invocada com um argumento de erro possível. Se qualquer uma das verificações de acessibilidade falhar, o argumento de erro será preenchido. O exemplo a seguir verifica se o arquivo / etc / passwd pode ser lido e gravado pelo processo atual. Usando fs. access () para verificar a acessibilidade de um arquivo antes de chamar fs. open (). Fs. readFile () ou fs. writeFile () não é recomendada. Fazer isso introduz uma condição de corrida, já que outros processos podem alterar o estado do arquivo entre as duas chamadas. Em vez disso, o código de usuário deve abrir / ler / gravar o arquivo diretamente e manipular o erro gerado se o arquivo não estiver acessível. Write (NOT RECOMMENDED) read (NOT RECOMMENDED) O quotnot recommendedquot exemplos acima verificar a acessibilidade e, em seguida, usar o arquivo os exemplos quotrecommendedquot são melhores porque eles usam o arquivo diretamente e lidar com o erro, se houver. Em geral, verifique a acessibilidade de um arquivo somente se o arquivo não será usado diretamente, por exemplo quando sua acessibilidade é um sinal de outro processo. Fs. accessSync (path, mode) Adicionado em: v0.11.15 Versão síncrona do fs. access (). Isso lança se qualquer verificação de acessibilidade falhar, e não faz nada caso contrário. Fs. appendFile (arquivo, dados, opções, callback) Adiciona dados de maneira assíncrona a um arquivo, criando o arquivo se ele ainda não existir. Os dados podem ser uma string ou um buffer. Se options for uma string, então ela especifica a codificação. Exemplo: Qualquer descritor de arquivo especificado deve ter sido aberto para inclusão. Nota: Se um descritor de arquivo for especificado como o arquivo. Ele não será fechado automaticamente. Fs. appendFileSync (arquivo, dados, opções) A versão síncrona do fs. appendFile (). Retorna indefinido. Fs. chmod (caminho, modo, callback) Chmod assíncrono (2). Nenhum argumento que não seja uma possível exceção é dado ao retorno de chamada de conclusão. Fs. chmodSync (caminho, modo) Chmod síncrono (2). Retorna indefinido. Fs. chown (path, uid, gid, callback) Chunk assíncrono (2). Nenhum argumento que não seja uma possível exceção é dado ao retorno de chamada de conclusão. Fs. chownSync (caminho, uid, gid) Chunk síncrono (2). Retorna indefinido. Fs. close (fd, callback) Assíncrono close (2). Nenhum argumento que não seja uma possível exceção é dado ao retorno de chamada de conclusão. Fs. closeSync (fd) Sincronizado close (2). Retorna indefinido. Fs. constents Retorna um objeto que contém constantes comumente usadas para operações do sistema de arquivos. As constantes específicas atualmente definidas são descritas em Constantes FS. Fs. createReadStream (caminho, opções) Lembre-se de que, ao contrário do valor padrão definido para highWaterMark em um fluxo legível (16 kb), o fluxo retornado por este método tem um valor padrão de 64 kb para o mesmo parâmetro. É um objeto ou seqüência de caracteres com os seguintes padrões: opções podem incluir valores de início e fim para ler um intervalo de bytes do arquivo em vez de todo o arquivo. Tanto o início como o fim são inclusivos e começam em 0. A codificação pode ser qualquer uma daquelas aceitas pelo Buffer. Se fd for especificado, o ReadStream ignorará o argumento path e usará o descritor de arquivo especificado. Isso significa que nenhum evento 39open39 será emitido. Observe que fd deve estar bloqueando não-bloqueio fd s deve ser passado para net. Socket. Se autoClose for false, então o descriptor de arquivo não será fechado, mesmo se houver um erro. É sua responsabilidade fechá-lo e certifique-se de que não há vazamento de descritor de arquivo. Se autoClose for definido como true (comportamento padrão), em erro ou no final o descritor de arquivo será fechado automaticamente. Mode define o modo de arquivo (permissão e sticky bits), mas somente se o arquivo foi criado. Um exemplo para ler os últimos 10 bytes de um arquivo com 100 bytes de comprimento: Se options é uma string, então especifica a codificação. Opções fs. createWriteStream (caminho, opções) é um objeto ou seqüência de caracteres com as seguintes opções padrão: as opções também podem incluir uma opção de início para permitir a gravação de dados em alguma posição após o início do arquivo. Modificar um arquivo em vez de substituí-lo pode exigir um modo sinalizadores de r em vez do modo padrão w. O defaultEncoding pode ser qualquer um daqueles aceitos pelo Buffer. Se autoClose estiver definido como true (comportamento padrão) no erro ou no final, o descritor de arquivo será fechado automaticamente. Se autoClose for false, então o descriptor de arquivo não será fechado, mesmo se houver um erro. É sua responsabilidade fechá-lo e certifique-se de que não há vazamento de descritor de arquivo. Como o ReadStream. if fd is specified, WriteStream will ignore the path argument and will use the specified file descriptor. This means that no 39open39 event will be emitted. Note that fd should be blocking non-blocking fd s should be passed to net. Socket . If options is a string, then it specifies the encoding. fs. exists(path, callback) Added in: v0.0.2 Deprecated since: v1.0.0 Test whether or not the given path exists by checking with the file system. Then call the callback argument with either true or false. Example: Using fs. exists() to check for the existence of a file before calling fs. open(). fs. readFile() or fs. writeFile() is not recommended. Doing so introduces a race condition, since other processes may change the file39s state between the two calls. Instead, user code should open/read/write the file directly and handle the error raised if the file does not exist. write (NOT RECOMMENDED) read (NOT RECOMMENDED) The quotnot recommendedquot examples above check for existence and then use the file the quotrecommendedquot examples are better because they use the file directly and handle the error, if any. In general, check for the existence of a file only if the file wont be used directly, for example when its existence is a signal from another process. fs. existsSync(path) Added in: v0.1.21 Deprecated since: v1.0.0 Synchronous version of fs. exists(). Returns true if the file exists, false otherwise. fs. fchmod(fd, mode, callback) Asynchronous fchmod(2). No arguments other than a possible exception are given to the completion callback. fs. fchmodSync(fd, mode) Synchronous fchmod(2). Returns undefined . fs. fchown(fd, uid, gid, callback) Asynchronous fchown(2). No arguments other than a possible exception are given to the completion callback. fs. fchownSync(fd, uid, gid) Synchronous fchown(2). Returns undefined . fs. fdatasync(fd, callback) Asynchronous fdatasync(2). No arguments other than a possible exception are given to the completion callback. fs. fdatasyncSync(fd) Synchronous fdatasync(2). Returns undefined . fs. fstat(fd, callback) Asynchronous fstat(2). The callback gets two arguments (err, stats) where stats is a fs. Stats object. fstat() is identical to stat(). except that the file to be stat-ed is specified by the file descriptor fd . fs. fstatSync(fd) Synchronous fstat(2). Returns an instance of fs. Stats . fs. fsync(fd, callback) Asynchronous fsync(2). No arguments other than a possible exception are given to the completion callback. fs. fsyncSync(fd) Synchronous fsync(2). Returns undefined . fs. ftruncate(fd, len, callback) Asynchronous ftruncate(2). No arguments other than a possible exception are given to the completion callback. If the file referred to by the file descriptor was larger than len bytes, only the first len bytes will be retained in the file. For example, the following program retains only the first four bytes of the file If the file previously was shorter than len bytes, it is extended, and the extended part is filled with null bytes (39039). For example, The last three bytes are null bytes (39039), to compensate the over-truncation. fs. ftruncateSync(fd, len) fd ltIntegergt len ltIntegergt default 0 Synchronous ftruncate(2). Returns undefined . fs. futimes(fd, atime, mtime, callback) Change the file timestamps of a file referenced by the supplied file descriptor. fs. futimesSync(fd, atime, mtime) fd ltIntegergt atime ltIntegergt mtime ltIntegergt Synchronous version of fs. futimes(). Returns undefined . fs. lchmod(path, mode, callback) Deprecated since: v0.4.7 Asynchronous lchmod(2). No arguments other than a possible exception are given to the completion callback. Only available on Mac OS X. fs. lchmodSync(path, mode) Deprecated since: v0.4.7 Synchronous lchmod(2). Returns undefined . fs. lchown(path, uid, gid, callback) Deprecated since: v0.4.7 Asynchronous lchown(2). No arguments other than a possible exception are given to the completion callback. fs. lchownSync(path, uid, gid) Deprecated since: v0.4.7 Synchronous lchown(2). Returns undefined . fs. link(srcpath, dstpath, callback) Asynchronous link(2). No arguments other than a possible exception are given to the completion callback. fs. linkSync(srcpath, dstpath) Synchronous link(2). Returns undefined . fs. lstat(path, callback) Asynchronous lstat(2). The callback gets two arguments (err, stats) where stats is a fs. Stats object. lstat() is identical to stat(). except that if path is a symbolic link, then the link itself is stat-ed, not the file that it refers to. fs. lstatSync(path) Synchronous lstat(2). Returns an instance of fs. Stats . fs. mkdir(path, mode, callback) Asynchronous mkdir(2). No arguments other than a possible exception are given to the completion callback. mode defaults to 0o777 . fs. mkdirSync(path, mode) Synchronous mkdir(2). Returns undefined . fs. mkdtemp(prefix, options, callback) Creates a unique temporary directory. Generates six random characters to be appended behind a required prefix to create a unique temporary directory. The created folder path is passed as a string to the callback39s second parameter. The optional options argument can be a string specifying an encoding, or an object with an encoding property specifying the character encoding to use. Nota . The fs. mkdtemp() method will append the six randomly selected characters directly to the prefix string. For instance, given a directory /tmp. if the intention is to create a temporary directory within /tmp. the prefix must end with a trailing platform-specific path separator ( require(39path39).sep ). fs. mkdtempSync(prefix, options) The synchronous version of fs. mkdtemp(). Returns the created folder path. The optional options argument can be a string specifying an encoding, or an object with an encoding property specifying the character encoding to use. fs. open(path, flags, mode, callback) Asynchronous file open. See open(2). flags can be: 39r39 - Open file for reading. An exception occurs if the file does not exist. 39r39 - Open file for reading and writing. An exception occurs if the file does not exist. 39rs39 - Open file for reading and writing in synchronous mode. Instructs the operating system to bypass the local file system cache. This is primarily useful for opening files on NFS mounts as it allows you to skip the potentially stale local cache. It has a very real impact on I/O performance so don39t use this flag unless you need it. Note that this doesn39t turn fs. open() into a synchronous blocking call. If that39s what you want then you should be using fs. openSync() 39w39 - Open file for writing. The file is created (if it does not exist) or truncated (if it exists). 39wx39 - Like 39w39 but fails if path exists. 39w39 - Open file for reading and writing. The file is created (if it does not exist) or truncated (if it exists). 39wx39 - Like 39w39 but fails if path exists. 39a39 - Open file for appending. The file is created if it does not exist. 39ax39 - Like 39a39 but fails if path exists. 39a39 - Open file for reading and appending. The file is created if it does not exist. 39ax39 - Like 39a39 but fails if path exists. mode sets the file mode (permission and sticky bits), but only if the file was created. It defaults to 0666. readable and writable. The callback gets two arguments (err, fd) . The exclusive flag 39x39 ( OEXCL flag in open(2) ) ensures that path is newly created. On POSIX systems, path is considered to exist even if it is a symlink to a non-existent file. The exclusive flag may or may not work with network file systems. flags can also be a number as documented by open(2) commonly used constants are available from fs. constants. On Windows, flags are translated to their equivalent ones where applicable, e. g. OWRONLY to FILEGENERICWRITE. or OEXCLOCREAT to CREATENEW. as accepted by CreateFileW. On Linux, positional writes don39t work when the file is opened in append mode. The kernel ignores the position argument and always appends the data to the end of the file. Note: The behavior of fs. open() is platform specific for some flags. As such, opening a directory on OS X and Linux with the 39a39 flag - see example below - will return an error. In contrast, on Windows and FreeBSD, a file descriptor will be returned. fs. openSync(path, flags, mode) Synchronous version of fs. open(). Returns an integer representing the file descriptor. fs. read(fd, buffer, offset, length, position, callback) Read data from the file specified by fd . buffer is the buffer that the data will be written to. offset is the offset in the buffer to start writing at. length is an integer specifying the number of bytes to read. position is an integer specifying where to begin reading from in the file. If position is null. data will be read from the current file position. The callback is given the three arguments, (err, bytesRead, buffer) . fs. readdir(path, options, callback) Asynchronous readdir(3). Reads the contents of a directory. The callback gets two arguments (err, files) where files is an array of the names of the files in the directory excluding 39.39 and 39..39 . The optional options argument can be a string specifying an encoding, or an object with an encoding property specifying the character encoding to use for the filenames passed to the callback. If the encoding is set to 39buffer39. the filenames returned will be passed as Buffer objects. fs. readdirSync(path, options) Synchronous readdir(3). Returns an array of filenames excluding 39.39 and 39..39 . The optional options argument can be a string specifying an encoding, or an object with an encoding property specifying the character encoding to use for the filenames passed to the callback. If the encoding is set to 39buffer39. the filenames returned will be passed as Buffer objects. fs. readFile(file, options, callback) Asynchronously reads the entire contents of a file. Example: The callback is passed two arguments (err, data). where data is the contents of the file. If no encoding is specified, then the raw buffer is returned. If options is a string, then it specifies the encoding. Example: Any specified file descriptor has to support reading. Note: If a file descriptor is specified as the file. it will not be closed automatically. fs. readFileSync(file, options) Synchronous version of fs. readFile. Returns the contents of the file . If the encoding option is specified then this function returns a string. Otherwise it returns a buffer. fs. readlink(path, options, callback) Asynchronous readlink(2). The callback gets two arguments (err, linkString) . The optional options argument can be a string specifying an encoding, or an object with an encoding property specifying the character encoding to use for the link path passed to the callback. If the encoding is set to 39buffer39. the link path returned will be passed as a Buffer object. fs. readlinkSync(path, options) Synchronous readlink(2). Returns the symbolic link39s string value. The optional options argument can be a string specifying an encoding, or an object with an encoding property specifying the character encoding to use for the link path passed to the callback. If the encoding is set to 39buffer39. the link path returned will be passed as a Buffer object. fs. readSync(fd, buffer, offset, length, position) Synchronous version of fs. read(). Returns the number of bytesRead . fs. realpath(path, options, callback) Asynchronous realpath(3). The callback gets two arguments (err, resolvedPath). May use process. cwd to resolve relative paths. Only paths that can be converted to UTF8 strings are supported. The optional options argument can be a string specifying an encoding, or an object with an encoding property specifying the character encoding to use for the path passed to the callback. If the encoding is set to 39buffer39. the path returned will be passed as a Buffer object. fs. realpathSync(path, options) Synchronous realpath(3). Returns the resolved path. Only paths that can be converted to UTF8 strings are supported. The optional options argument can be a string specifying an encoding, or an object with an encoding property specifying the character encoding to use for the returned value. If the encoding is set to 39buffer39. the path returned will be passed as a Buffer object. fs. rename(oldPath, newPath, callback) Asynchronous rename(2). No arguments other than a possible exception are given to the completion callback. fs. renameSync(oldPath, newPath) Synchronous rename(2). Returns undefined . fs. rmdir(path, callback) Asynchronous rmdir(2). No arguments other than a possible exception are given to the completion callback. fs. rmdirSync(path) Synchronous rmdir(2). Returns undefined . fs. stat(path, callback) Asynchronous stat(2). The callback gets two arguments (err, stats) where stats is a fs. Stats object. See the fs. Stats section for more information. fs. statSync(path) Synchronous stat(2). Returns an instance of fs. Stats . fs. symlink(target, path, type, callback) Asynchronous symlink(2). No arguments other than a possible exception are given to the completion callback. The type argument can be set to 39dir39. 39file39. or 39junction39 (default is 39file39 ) and is only available on Windows (ignored on other platforms). Note that Windows junction points require the destination path to be absolute. When using 39junction39. the target argument will automatically be normalized to absolute path. Here is an example below: It creates a symbolic link named quotnew-portquot that points to quotfooquot. fs. symlinkSync(target, path, type) Synchronous symlink(2). Returns undefined . fs. truncate(path, len, callback) Asynchronous truncate(2). No arguments other than a possible exception are given to the completion callback. A file descriptor can also be passed as the first argument. In this case, fs. ftruncate() is called. fs. truncateSync(path, len) Synchronous truncate(2). Returns undefined. A file descriptor can also be passed as the first argument. In this case, fs. ftruncateSync() is called. fs. unlink(path, callback) Asynchronous unlink(2). No arguments other than a possible exception are given to the completion callback. fs. unlinkSync(path) Synchronous unlink(2). Returns undefined . fs. unwatchFile(filename, listener) Stop watching for changes on filename. If listener is specified, only that particular listener is removed. Otherwise, all listeners are removed and you have effectively stopped watching filename . Calling fs. unwatchFile() with a filename that is not being watched is a no-op, not an error. Note: fs. watch() is more efficient than fs. watchFile() and fs. unwatchFile(). fs. watch() should be used instead of fs. watchFile() and fs. unwatchFile() when possible. fs. utimes(path, atime, mtime, callback) Change file timestamps of the file referenced by the supplied path. Note: the arguments atime and mtime of the following related functions does follow the below rules: If the value is a numberable string like 3912345678939. the value would get converted to corresponding number. If the value is NaN or Infinity. the value would get converted to Date. now() . fs. utimesSync(path, atime, mtime) Synchronous version of fs. utimes(). Returns undefined . fs. watch(filename, options, listener) filename ltStringgt ltBuffergt options ltStringgt ltObjectgt persistent ltBooleangt Indicates whether the process should continue to run as long as files are being watched. default true recursive ltBooleangt Indicates whether all subdirectories should be watched, or only the current directory. The applies when a directory is specified, and only on supported platforms (See Caveats ). default false encoding ltStringgt Specifies the character encoding to be used for the filename passed to the listener. default 39utf839 listener ltFunctiongt Watch for changes on filename. where filename is either a file or a directory. The returned object is a fs. FSWatcher . The second argument is optional. If options is provided as a string, it specifies the encoding. Otherwise options should be passed as an object. The listener callback gets two arguments (eventType, filename). eventType is either 39rename39 or 39change39. and filename is the name of the file which triggered the event. Please note the listener callback is attached to the 39change39 event fired by fs. FSWatcher. but they are not the same thing. Caveats The fs. watch API is not 100 consistent across platforms, and is unavailable in some situations. The recursive option is only supported on OS X and Windows. Availability This feature depends on the underlying operating system providing a way to be notified of filesystem changes. On Linux systems, this uses inotify On BSD systems, this uses kqueue On OS X, this uses kqueue for files and FSEvents for directories. On SunOS systems (including Solaris and SmartOS), this uses event ports . On Windows systems, this feature depends on ReadDirectoryChangesW . On Aix systems, this feature depends on AHAFS. which must be enabled. If the underlying functionality is not available for some reason, then fs. watch will not be able to function. For example, watching files or directories can be unreliable, and in some cases impossible, on network file systems (NFS, SMB, etc), or host file systems when using virtualization software such as Vagrant, Docker, etc. You can still use fs. watchFile. which uses stat polling, but it is slower and less reliable. Inodes On Linux and OS X systems, fs. watch() resolves the path to an inode and watches the inode. If the watched path is deleted and recreated, it is assigned a new inode. The watch will emit an event for the delete but will continue watching the original inode. Events for the new inode will not be emitted. This is expected behavior. Filename Argument Providing filename argument in the callback is only supported on Linux and Windows. Even on supported platforms, filename is not always guaranteed to be provided. Therefore, don39t assume that filename argument is always provided in the callback, and have some fallback logic if it is null. fs. watchFile(filename, options, listener) Watch for changes on filename. The callback listener will be called each time the file is accessed. The options argument may be omitted. If provided, it should be an object. The options object may contain a boolean named persistent that indicates whether the process should continue to run as long as files are being watched. The options object may specify an interval property indicating how often the target should be polled in milliseconds. The default is . The listener gets two arguments the current stat object and the previous stat object: These stat objects are instances of fs. Stat . If you want to be notified when the file was modified, not just accessed, you need to compare curr. mtime and prev. mtime . Note: when an fs. watchFile operation results in an ENOENT error, it will invoke the listener once, with all the fields zeroed (or, for dates, the Unix Epoch). In Windows, blksize and blocks fields will be undefined. instead of zero. If the file is created later on, the listener will be called again, with the latest stat objects. This is a change in functionality since v0.10. Note: fs. watch() is more efficient than fs. watchFile and fs. unwatchFile. fs. watch should be used instead of fs. watchFile and fs. unwatchFile when possible. fs. write(fd, buffer, offset, length, position, callback) Write buffer to the file specified by fd . offset and length determine the part of the buffer to be written. position refers to the offset from the beginning of the file where this data should be written. If typeof position 39number39. the data will be written at the current position. See pwrite(2) . The callback will be given three arguments (err, written, buffer) where written specifies how many bytes were written from buffer . Note that it is unsafe to use fs. write multiple times on the same file without waiting for the callback. For this scenario, fs. createWriteStream is strongly recommended. On Linux, positional writes don39t work when the file is opened in append mode. The kernel ignores the position argument and always appends the data to the end of the file. fs. write(fd, data, position, encoding, callback) Write data to the file specified by fd. If data is not a Buffer instance then the value will be coerced to a string. position refers to the offset from the beginning of the file where this data should be written. If typeof position 39number39 the data will be written at the current position. See pwrite(2) . encoding is the expected string encoding. The callback will receive the arguments (err, written, string) where written specifies how many bytes the passed string required to be written. Note that bytes written is not the same as string characters. See Buffer. byteLength . Unlike when writing buffer. the entire string must be written. No substring may be specified. This is because the byte offset of the resulting data may not be the same as the string offset. Note that it is unsafe to use fs. write multiple times on the same file without waiting for the callback. For this scenario, fs. createWriteStream is strongly recommended. On Linux, positional writes don39t work when the file is opened in append mode. The kernel ignores the position argument and always appends the data to the end of the file. fs. writeFile(file, data, options, callback) Asynchronously writes data to a file, replacing the file if it already exists. data can be a string or a buffer. The encoding option is ignored if data is a buffer. It defaults to 39utf839 . If options is a string, then it specifies the encoding. Example: Any specified file descriptor has to support writing. Note that it is unsafe to use fs. writeFile multiple times on the same file without waiting for the callback. For this scenario, fs. createWriteStream is strongly recommended. Note: If a file descriptor is specified as the file. it will not be closed automatically. fs. writeFileSync(file, data, options) The synchronous version of fs. writeFile(). Returns undefined . fs. writeSync(fd, buffer, offset, length, position) fs. writeSync(fd, data, position, encoding) Synchronous versions of fs. write(). Returns the number of bytes written. FS Constants The following constants are exported by fs. constants. Note: Not every constant will be available on every operating system. File Access Constants The following constants are meant for use with fs. access() .
Comments
Post a Comment