From 54badec4bbd459709af110c796d7fef3dc2d1a66 Mon Sep 17 00:00:00 2001 From: Luiz Henrique Felix Date: Fri, 13 Nov 2020 14:15:48 -0300 Subject: [PATCH 1/9] Update 20_node.md --- 20_node.md | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/20_node.md b/20_node.md index cd2f6c8d..4aa94b64 100644 --- a/20_node.md +++ b/20_node.md @@ -4,11 +4,11 @@ {{quote {author: "Master Yuan-Ma", title: "The Book of Programming", chapter: true} -A student asked, 'The programmers of old used only simple machines and -no programming languages, yet they made beautiful programs. Why do we -use complicated machines and programming languages?'. Fu-Tzu replied, -'The builders of old used only sticks and clay, yet they made -beautiful huts.' +Um aluno perguntou: 'Os programadores antigos usavam apenas máquinas simples e +nenhuma linguagem de programação, mas eles fizeram programas bonitos. Por que nós +usamos máquinas e linguagens de programação complicadas? '. Fu-Tzu respondeu, +'Os construtores antigos usavam apenas paus e argila, mas eles fizeram +lindas cabanas. ' quote}} From e6b0d7111452a47edcb5c61227e9faba2de9ee07 Mon Sep 17 00:00:00 2001 From: Luiz Henrique Felix Date: Fri, 13 Nov 2020 14:58:39 -0300 Subject: [PATCH 2/9] Update 20_node.md --- 20_node.md | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/20_node.md b/20_node.md index 4aa94b64..19072acf 100644 --- a/20_node.md +++ b/20_node.md @@ -18,12 +18,12 @@ quote}} {{index "command line"}} -So far, we have used the JavaScript language in a single environment: -the browser. This chapter and the [next one](skillsharing) will -briefly introduce ((Node.js)), a program that allows you to apply your -JavaScript skills outside of the browser. With it, you can build -anything from small command line tools to HTTP ((server))s that power -dynamic ((website))s. +Até agora, usamos a linguagem JavaScript em um único ambiente: +o navegador. Este capítulo e o [next one](skillsharing) irão +apresentar brevemente ((Node.js)), um programa que permite que você aplique suas +Habilidades de JavaScript fora do navegador. Com ele, você pode construir +qualquer coisa, desde pequenas ferramentas de linha de comando a ((server))s HTTP que alimentam +((website))s dinâmicos. These chapters aim to teach you the main concepts that Node.js uses and to give you enough information to write useful programs for it. From d8323f8e7768ace217f6a1fe9850f92cc948b63a Mon Sep 17 00:00:00 2001 From: Luiz Henrique Felix Date: Fri, 13 Nov 2020 15:49:13 -0300 Subject: [PATCH 3/9] Update 20_node.md --- 20_node.md | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/20_node.md b/20_node.md index 19072acf..e5ec7fe2 100644 --- a/20_node.md +++ b/20_node.md @@ -25,10 +25,10 @@ Habilidades de JavaScript fora do navegador. Com ele, você pode construir qualquer coisa, desde pequenas ferramentas de linha de comando a ((server))s HTTP que alimentam ((website))s dinâmicos. -These chapters aim to teach you the main concepts that Node.js uses -and to give you enough information to write useful programs for it. -They do not try to be a complete, or even a thorough, treatment of the -platform. +Estes capítulos têm como objetivo ensinar os principais conceitos que o Node.js usa +para lhe dar informações suficientes para escrever programas para ele. +Eles não tentam ser completos, ou mesmo meticulosos, tratamento da +plataforma. {{if interactive From 65d73f4a5063168c72e4e0886a4f1adbbc437c20 Mon Sep 17 00:00:00 2001 From: Luiz Henrique Felix Date: Mon, 16 Nov 2020 20:37:36 -0300 Subject: [PATCH 4/9] Update 20_node.md Update do dia 16/11/2020 --- 20_node.md | 17 ++++++++--------- 1 file changed, 8 insertions(+), 9 deletions(-) diff --git a/20_node.md b/20_node.md index e5ec7fe2..b0963ff2 100644 --- a/20_node.md +++ b/20_node.md @@ -32,18 +32,17 @@ plataforma. {{if interactive -Whereas you could run the code in previous chapters directly on these -pages, because it was either raw JavaScript or written for the -browser, the code samples in this chapter are written for Node and -often won't run in the browser. +Considerando que você pode executar o código dos capítulos anteriores diretamente nestas +páginas, porque era JavaScript bruto ou escrito para o +navegador, os exemplos de código neste capítulo são escritos para Node e +muitas vezes não rodam no navegador. if}} -If you want to follow along and run the code in this chapter, you'll -need to install Node.js version 10.1 or higher. To do so, go to -[_https://nodejs.org_](https://nodejs.org) and follow the installation -instructions for your operating system. You can also find further -((documentation)) for Node.js there. +Se você quiser acompanhar e executar o código neste capítulo, você +precisa instalar o Node.js versão 10.1 ou superior. Para fazer isso, vá para [_https://nodejs.org_](https://nodejs.org) e siga as instruções de +instalação para o seu sistema operacional. Você também pode encontrar informações adicionais +((documentation)) para Node.js lá. ## Background From 531899b5682a8243d23ef73510e6a540b5a66623 Mon Sep 17 00:00:00 2001 From: Luiz Henrique Felix Date: Mon, 16 Nov 2020 21:41:11 -0300 Subject: [PATCH 5/9] Changes --- 20_node.md | 3 +++ pdf/missfont.log | 0 2 files changed, 3 insertions(+) create mode 100644 pdf/missfont.log diff --git a/20_node.md b/20_node.md index b0963ff2..022c9b78 100644 --- a/20_node.md +++ b/20_node.md @@ -48,6 +48,9 @@ instalação para o seu sistema operacional. Você também pode encontrar inform {{index responsiveness, input, [network, speed]}} +Um dos problemas mais difíceis com sistemas de escrita que +comunicar-se pela rede é gerenciar a entrada e + One of the more difficult problems with writing systems that communicate over the network is managing input and ((output))—that is, the reading and writing of data to and from the network and ((hard diff --git a/pdf/missfont.log b/pdf/missfont.log new file mode 100644 index 00000000..e69de29b From 009bd9e683029a6d90bc3ab41b99ca5424aab7a1 Mon Sep 17 00:00:00 2001 From: Luiz Henrique Felix Date: Mon, 16 Nov 2020 22:18:43 -0300 Subject: [PATCH 6/9] Update 20_node.md --- 20_node.md | 35 +++++++++++++---------------------- 1 file changed, 13 insertions(+), 22 deletions(-) diff --git a/20_node.md b/20_node.md index 022c9b78..8be935fd 100644 --- a/20_node.md +++ b/20_node.md @@ -44,38 +44,29 @@ precisa instalar o Node.js versão 10.1 ou superior. Para fazer isso, vá para [ instalação para o seu sistema operacional. Você também pode encontrar informações adicionais ((documentation)) para Node.js lá. -## Background +## Plano de Fundo {{index responsiveness, input, [network, speed]}} Um dos problemas mais difíceis com sistemas de escrita que -comunicar-se pela rede é gerenciar a entrada e - -One of the more difficult problems with writing systems that -communicate over the network is managing input and ((output))—that -is, the reading and writing of data to and from the network and ((hard -drive)). Moving data around takes time, and ((scheduling)) it cleverly -can make a big difference in how quickly a system responds to the user -or to network requests. +comunicam-se pela rede é gerenciar a entrada e ((output)) +—isto é, a leitura e gravação de dados de e para a rede e ((harddrive)). A movimentação de dados leva tempo, e ((scheduling)) ela +habilmente +pode fazer uma grande diferença na rapidez com que um sistema responde ao usuário +ou a solicitações de rede. {{index ["asynchronous programming", "in Node.js"]}} -In such programs, asynchronous programming is often helpful. It -allows the program to send and receive data from and to multiple -devices at the same time without complicated thread management and -synchronization. +Em tais programas, a programação assíncrona costuma ser útil. +permitindo que o programa envie e receba dados de e para vários +dispositivos ao mesmo tempo, sem gerenciamento complicado de thread e sincronização. {{index "programming language", "Node.js", standard}} -Node was initially conceived for the purpose of making asynchronous -programming easy and convenient. JavaScript lends itself well to a -system like Node. It is one of the few programming languages that does -not have a built-in way to do in- and output. Thus, JavaScript could -be fit onto Node's rather eccentric approach to in- and output without -ending up with two inconsistent interfaces. In 2009, when Node was -being designed, people were already doing callback-based programming -in the browser, so the ((community)) around the language was used to -an asynchronous programming style. +O Node foi inicialmente concebido com o propósito de tornar +a programação assíncrona fácil e conveniente. JavaScript se comporta bem a um sistema como o Node. É uma das poucas linguagens de programação que não tem uma maneira embutida de fazer entrada e saída. Assim, JavaScript poderia +se encaixar na abordagem bastante excêntrica do Node para entrada e saída sem terminar com duas interfaces inconsistentes. Em 2009, quando Node estava +sendo projetado, as pessoas já estavam fazendo programação baseada em callback no navegador, de modo que a ((community)) em torno da linguagem estava acostumada a um estilo de programação assíncrona. ## The node command From 3be11a2c0ed36130bd530302f3f39407f5c97e8a Mon Sep 17 00:00:00 2001 From: Luiz Henrique Felix Date: Tue, 17 Nov 2020 21:40:00 -0300 Subject: [PATCH 7/9] Update 20_node.md --- 20_node.md | 37 +++++++++++++++++-------------------- 1 file changed, 17 insertions(+), 20 deletions(-) diff --git a/20_node.md b/20_node.md index 8be935fd..a132c081 100644 --- a/20_node.md +++ b/20_node.md @@ -2,33 +2,31 @@ # Node.js -{{quote {author: "Master Yuan-Ma", title: "The Book of Programming", chapter: true} +{{quote {author: "Mestre Yuan-Ma", title: "O Livro da Programação", chapter: true} -Um aluno perguntou: 'Os programadores antigos usavam apenas máquinas simples e +Um aluno perguntou: 'Os antigos programadores usavam apenas máquinas simples e nenhuma linguagem de programação, mas eles fizeram programas bonitos. Por que nós usamos máquinas e linguagens de programação complicadas? '. Fu-Tzu respondeu, 'Os construtores antigos usavam apenas paus e argila, mas eles fizeram -lindas cabanas. ' +lindas cabanas. quote}} {{index "Yuan-Ma", "Book of Programming"}} -{{figure {url: "img/chapter_picture_20.jpg", alt: "Picture of a telephone pole", chapter: "framed"}}} +{{figure {url:"https://eloquentjavascript.net/img/chapter_picture_20.jpg", alt: "Picture of a telephone pole", chapter: "framed"}}} {{index "command line"}} Até agora, usamos a linguagem JavaScript em um único ambiente: -o navegador. Este capítulo e o [next one](skillsharing) irão -apresentar brevemente ((Node.js)), um programa que permite que você aplique suas -Habilidades de JavaScript fora do navegador. Com ele, você pode construir +o navegador. Este capítulo e o [próximo](skillsharing) irão +apresentar brevemente ((Node.js)), um programa que permite que você aplique suas habilidades de JavaScript fora do navegador. Com ele, você pode construir qualquer coisa, desde pequenas ferramentas de linha de comando a ((server))s HTTP que alimentam ((website))s dinâmicos. Estes capítulos têm como objetivo ensinar os principais conceitos que o Node.js usa para lhe dar informações suficientes para escrever programas para ele. -Eles não tentam ser completos, ou mesmo meticulosos, tratamento da -plataforma. +Eles não tentam ser completos, ou até mesmo meticulosos, no tratamento da plataforma. {{if interactive @@ -49,32 +47,31 @@ instalação para o seu sistema operacional. Você também pode encontrar inform {{index responsiveness, input, [network, speed]}} Um dos problemas mais difíceis com sistemas de escrita que -comunicam-se pela rede é gerenciar a entrada e ((output)) -—isto é, a leitura e gravação de dados de e para a rede e ((harddrive)). A movimentação de dados leva tempo, e ((scheduling)) ela -habilmente -pode fazer uma grande diferença na rapidez com que um sistema responde ao usuário +comunicam-se pela rede é gerenciar a entrada e ((saída)), +isto é, a leitura e gravação de dados para a rede e ((disco rídigo)). A movimentação de dados leva tempo, e ((agenda))-la +habilmente pode fazer uma grande diferença na rapidez com que um sistema responde ao usuário ou a solicitações de rede. {{index ["asynchronous programming", "in Node.js"]}} Em tais programas, a programação assíncrona costuma ser útil. -permitindo que o programa envie e receba dados de e para vários +permitindo que o programa envie e receba dados a vários dispositivos ao mesmo tempo, sem gerenciamento complicado de thread e sincronização. {{index "programming language", "Node.js", standard}} O Node foi inicialmente concebido com o propósito de tornar -a programação assíncrona fácil e conveniente. JavaScript se comporta bem a um sistema como o Node. É uma das poucas linguagens de programação que não tem uma maneira embutida de fazer entrada e saída. Assim, JavaScript poderia +a programação assíncrona fácil e prático. JavaScript se comporta bem em um sistema como o Node. É uma das poucas linguagens de programação que não tem uma maneira embutida de fazer entrada e saída. Assim, JavaScript poderia se encaixar na abordagem bastante excêntrica do Node para entrada e saída sem terminar com duas interfaces inconsistentes. Em 2009, quando Node estava -sendo projetado, as pessoas já estavam fazendo programação baseada em callback no navegador, de modo que a ((community)) em torno da linguagem estava acostumada a um estilo de programação assíncrona. +sendo projetado, as pessoas já estavam fazendo programação baseada em callback no navegador, de modo que a ((comunidade)) em torno da linguagem estava acostumada a um estilo de programação assíncrona. -## The node command +## O comando do Node {{index "node program"}} -When ((Node.js)) is installed on a system, it provides a program -called `node`, which is used to run JavaScript files. Say you have a -file `hello.js`, containing this code: +Quando ((Node.js)) é instalado em um sistema, ele fornece um programa +chamado `node`, que é usado para executar arquivos JavaScript. Digamos que você tem um +arquivo `hello.js`, contendo este código: ``` let message = "Hello world"; From d077b3277f027bc461adf9fe13e00a25a8d1cce0 Mon Sep 17 00:00:00 2001 From: Luiz Henrique Felix Date: Tue, 17 Nov 2020 22:58:20 -0300 Subject: [PATCH 8/9] Update 20_node.md --- 20_node.md | 49 ++++++++++++++++--------------------------------- 1 file changed, 16 insertions(+), 33 deletions(-) diff --git a/20_node.md b/20_node.md index a132c081..22d5a77f 100644 --- a/20_node.md +++ b/20_node.md @@ -6,7 +6,7 @@ Um aluno perguntou: 'Os antigos programadores usavam apenas máquinas simples e nenhuma linguagem de programação, mas eles fizeram programas bonitos. Por que nós -usamos máquinas e linguagens de programação complicadas? '. Fu-Tzu respondeu, +usamos máquinas e linguagens de programação complicadas?'. Fu-Tzu respondeu, 'Os construtores antigos usavam apenas paus e argila, mas eles fizeram lindas cabanas. @@ -39,8 +39,8 @@ if}} Se você quiser acompanhar e executar o código neste capítulo, você precisa instalar o Node.js versão 10.1 ou superior. Para fazer isso, vá para [_https://nodejs.org_](https://nodejs.org) e siga as instruções de -instalação para o seu sistema operacional. Você também pode encontrar informações adicionais -((documentation)) para Node.js lá. +instalação para o seu sistema operacional. Você também pode encontrar informações adicionais na +((documentação)) para Node.js lá. ## Plano de Fundo @@ -48,9 +48,7 @@ instalação para o seu sistema operacional. Você também pode encontrar inform Um dos problemas mais difíceis com sistemas de escrita que comunicam-se pela rede é gerenciar a entrada e ((saída)), -isto é, a leitura e gravação de dados para a rede e ((disco rídigo)). A movimentação de dados leva tempo, e ((agenda))-la -habilmente pode fazer uma grande diferença na rapidez com que um sistema responde ao usuário -ou a solicitações de rede. +isto é, a leitura e gravação de dados para a rede e ((disco rídigo)). A movimentação de dados leva tempo, e ((agenda))-la pode fazer uma grande diferença na rapidez com que um sistema responde ao usuário ou a solicitações de rede. {{index ["asynchronous programming", "in Node.js"]}} @@ -61,7 +59,7 @@ dispositivos ao mesmo tempo, sem gerenciamento complicado de thread e sincroniza {{index "programming language", "Node.js", standard}} O Node foi inicialmente concebido com o propósito de tornar -a programação assíncrona fácil e prático. JavaScript se comporta bem em um sistema como o Node. É uma das poucas linguagens de programação que não tem uma maneira embutida de fazer entrada e saída. Assim, JavaScript poderia +a programação assíncrona fácil e prática. JavaScript se comporta bem em um sistema como o Node. É uma das poucas linguagens de programação que não tem uma maneira embutida de fazer entrada e saída. Assim, JavaScript poderia se encaixar na abordagem bastante excêntrica do Node para entrada e saída sem terminar com duas interfaces inconsistentes. Em 2009, quando Node estava sendo projetado, as pessoas já estavam fazendo programação baseada em callback no navegador, de modo que a ((comunidade)) em torno da linguagem estava acostumada a um estilo de programação assíncrona. @@ -69,7 +67,7 @@ sendo projetado, as pessoas já estavam fazendo programação baseada em callbac {{index "node program"}} -Quando ((Node.js)) é instalado em um sistema, ele fornece um programa +Quando o ((Node.js)) é instalado em um sistema, ele fornece um programa chamado `node`, que é usado para executar arquivos JavaScript. Digamos que você tem um arquivo `hello.js`, contendo este código: @@ -78,8 +76,7 @@ let message = "Hello world"; console.log(message); ``` -You can then run `node` from the ((command line)) like this to execute -the program: +Você então pode rodar `node` a partir de uma ((linha de comando)) como essa para executar o programa: ```{lang: null} $ node hello.js @@ -88,18 +85,12 @@ Hello world {{index "console.log"}} -The `console.log` method in Node does something similar to what it -does in the browser. It prints out a piece of text. But in Node, the -text will go to the process's ((standard output)) stream, rather than -to a browser's ((JavaScript console)). When running `node` from the -command line, that means you see the logged values in your -((terminal)). +O método `console.log` no Node faz algo semelhante ao que faz no navegador. Ele imprime um pedaço de texto. Mas em Node, o texto irá para a ((saída padrão)) do fluxo do processo, ao invés do ((console JavaScript)) de um navegador. Ao executar `node` da linha de comando, isso significa que você vê os valores registrados em seu ((terminal)). {{index "node program", "read-eval-print loop"}} -If you run `node` without giving it a file, it provides you with a -prompt at which you can type JavaScript code and immediately see the -result. +Se você executar `node` sem fornecer um arquivo, ele fornece um +prompt no qual você pode digitar o código JavaScript e ver imediatamente o resultado. ```{lang: null} $ node @@ -113,20 +104,12 @@ $ {{index "process object", "global scope", [binding, global], "exit method", "status code"}} -The `process` binding, just like the `console` binding, is available -globally in Node. It provides various ways to inspect and manipulate -the current program. The `exit` method ends the process and can be -given an exit status code, which tells the program that started `node` -(in this case, the command line shell) whether the program completed -successfully (code zero) or encountered an error (any other code). +O vínculo `process`, assim como o vínculo `console`, está disponível globalmente no Node. Ele fornece várias maneiras de inspecionar e manipular o programa atual. O método `exit` termina o processo e pode ser dado um código de status de saída, que diz ao programa que iniciou o `node` +(neste caso, o shell da linha de comando) se o programa foi concluído com sucesso (código zero) ou encontrou um erro (qualquer outro código). {{index "command line", "argv property"}} -To find the command line arguments given to your script, you can read -`process.argv`, which is an array of strings. Note that it also -includes the name of the `node` command and your script name, so the -actual arguments start at index 2. If `showargv.js` contains the -statement `console.log(process.argv)`, you could run it like this: +Para encontrar os argumentos da linha de comando fornecidos ao seu script, você pode ler `process.argv`, que é uma matriz de strings. Observe que também inclui o nome do comando `node` e o nome do seu script, então os argumentos reais começam no índice 2. Se `showargv.js` contém a instrução `console.log (process.argv)`, você poderia executá-lo assim: ```{lang: null} $ node showargv.js one --and two @@ -135,9 +118,9 @@ $ node showargv.js one --and two {{index [binding, global]}} -All the ((standard)) JavaScript global bindings, such as `Array`, -`Math`, and `JSON`, are also present in Node's environment. -Browser-related functionality, such as `document` or `prompt`, is not. +Todas as ligações ((padrão)) globais JavaScript, como `Array`, +`Math` e` JSON`, também estão presentes no ambiente do Node. +Funcionalidades relacionadas ao navegador, como `document` ou` prompt`, não. ## Modules From e2fc19c66a6e7bb0c5139f8be69f854c7938c8d4 Mon Sep 17 00:00:00 2001 From: Luiz Henrique Felix Date: Sat, 29 May 2021 22:30:45 -0300 Subject: [PATCH 9/9] traducao_topico_modulos --- 20_node.md | 58 ++++++++++++++++++++---------------------------------- 1 file changed, 21 insertions(+), 37 deletions(-) diff --git a/20_node.md b/20_node.md index 22d5a77f..3a0ce6b5 100644 --- a/20_node.md +++ b/20_node.md @@ -122,53 +122,41 @@ Todas as ligações ((padrão)) globais JavaScript, como `Array`, `Math` e` JSON`, também estão presentes no ambiente do Node. Funcionalidades relacionadas ao navegador, como `document` ou` prompt`, não. -## Modules +## Módulos {{index "Node.js", "global scope", "module loader"}} -Beyond the bindings I mentioned, such as `console` and `process`, -Node puts few additional bindings in the global scope. If you want to access -built-in functionality, you have to ask the module system for it. +Além das ligações que mencionei, como `console` e `processo`, +O Node coloca algumas ligações adicionais no escopo global. Se você quiser acessar +funcionalidades embutidas, você deve solicitar ao sistema de módulos. {{index "require function"}} -The ((CommonJS)) module system, based on the `require` function, was -described in [Chapter ?](modules#commonjs). This system is built into -Node and is used to load anything from built-in ((module))s to -downloaded ((package))s to ((file))s that are part of your own -program. +O sistema de módulos ((CommonJS)), baseado na função `require`, foi +descrito no [Chapter ?](modules#commonjs). Este sistema é integrado +ao Node e é usado para carregar qualquer coisa desde ((módulo))s integrados a ((pacote))s baixados para ((arquivo))s que são parte de seus próprios programas. {{index [path, "file system"], "relative path", resolution}} -When `require` is called, Node has to resolve the given string to an -actual ((file)) that it can load. Pathnames that start with `/`, -`./`, or `../` are resolved relative to the current module's path, -where `.` stands for the current directory, `../` for one -directory up, and `/` for the root of the file system. So if you ask -for `"./graph"` from the file `/tmp/robot/robot.js`, Node will try to -load the file `/tmp/robot/graph.js`. +Quando `require` é chamado, o Node tem que resolver a string dada para um ((arquivo)) atual que pode carregar. Nomes de caminhos que começam com `/`, `./` ou `../` são resolvidos em relação ao caminho do módulo atual, onde `.` representa o diretório atual, `../ ` para um diretório para cima e `/` para a raiz do sistema de arquivos. Então se você perguntar +para `"./graph"` do arquivo `/tmp/robot/robot.js`, o Node tentará +carregar o arquivo `/tmp/robot/graph.js`. {{index "index.js"}} -The `.js` ((extension)) may be omitted, and Node will add it if such a -file exists. If the required path refers to a ((directory)), Node will -try to load the file named `index.js` in that directory. +A ((extensão)) `.js` pode ser omitida, e o Node irá adicioná-la se tal o arquivo existe. Se o caminho necessário se referir a um ((diretório)), o Node irá +tente carregar o arquivo chamado `index.js` nesse diretório. {{index "node_modules directory", directory}} -When a string that does not look like a relative or absolute path is -given to `require`, it is assumed to refer to either a built-in -((module)) or a module installed in a `node_modules` directory. For -example, `require("fs")` will give you Node's built-in file system -module. And `require("robot")` might try to load the library found in -`node_modules/robot/`. A common way to install such libraries is by -using ((NPM)), which we'll come back to in a moment. +Quando uma string que não se parece com um caminho relativo ou absoluto é dado a `require`, presume-se que se refira a um +((módulo)) ou um módulo instalado em um diretório `node_modules`. Por exemplo, `require("fs")` lhe dará o módulo de sistemas de arquivos embutidos do Node. E `require ("robot")` pode tentar carregar a biblioteca encontrada em `node_modules/robot/`. Uma maneira comum de instalar essas bibliotecas é usando ((NPM)), ao qual voltaremos em breve. {{index "require function", "Node.js", "garble example"}} -Let's set up a small project consisting of two files. The first one, -called `main.js`, defines a script that can be called from the -((command line)) to reverse a string. +Vamos configurar um pequeno projeto que consiste em dois arquivos. O primeiro, +chamado `main.js`, define um script que pode ser chamado a partir da +((linha de comando)) para reverter uma string. ``` const {reverse} = require("./reverse"); @@ -181,9 +169,7 @@ console.log(reverse(argument)); {{index reuse, "Array.from function", "join method"}} -The file `reverse.js` defines a library for reversing strings, which -can be used both by this command line tool and by other scripts that -need direct access to a string-reversing function. +O arquivo `reverse.js` define uma biblioteca para reverter strings, que pode ser usado por esta ferramenta de linha de comando e por outros scripts que precisa de acesso direto a uma função de reversão de string. ``` exports.reverse = function(string) { @@ -193,12 +179,10 @@ exports.reverse = function(string) { {{index "exports object", CommonJS, [interface, module]}} -Remember that adding properties to `exports` adds them to the -interface of the module. Since Node.js treats files as -((CommonJS)) ((module))s, `main.js` can take the exported `reverse` -function from `reverse.js`. +Lembre-se de que adicionar propriedades a `exports` adiciona-as a interface do módulo. Como o Node.js trata os arquivos como +((módulo))s ((CommonJS)), `main.js` pode levar a função exportada `reverse` do `reverse.js`. -We can now call our tool like this: +Agora podemos chamar nossa ferramenta assim: ```{lang: null} $ node main.js JavaScript