Como executar um função pelo terminal em Node.js

Neste artigo você vai aprender a como executar um função pelo terminal em Node, ou seja, criar um script para rodar uma função de arquivo

executar um função pelo terminal em Node capa

Fala programador(a), beleza? Bora aprender mais sobre Node.js!

Para executar uma função pelo terminal é muito simples com Node

Vamos precisar criar a função e um determinado arquivo e exportá-la

Veja um exemplo de como pode ser feito:

    module.exports.execute = function () {
      console.log('Rodando pelo terminal!');
    };

Vamos supor que a função execute está em um arquivo chamado file.js

Com isso já é possível executar a função pelo terminal

O que vamos fazer agora é disparar um comando via terminal que vai acessar o arquivo e sua função

Formação Claude Code
Formação Recomendada

Formação Claude Code

Domine Claude Code do absoluto zero até o avançado

  • 120 aulas
  • 4 projetos
  • 9h 45min

O comando é o:

node -e 'require("./file").execute()'

Este código acessa o nosso arquivo com a função, e depois executa a função que criamos

Tudo via terminal com Node.js, simples não é?

Agora basta você adaptar os nomes de arquivo e função para a realidade do seu projeto, e executar suas funções

Deixe um comentário contando o que achou desta solução 🙂

Quer aprender mais sobre Node.js? Confira o vídeo abaixo:

Conclusão

Neste artigo você viu como executar um função pelo terminal em Node

Utilizamos uma estratégia que consiste em:

  • Criar um arquivo e exportar uma função;
  • Executar um comando específico que chama o arquivo e a função;

Com estes simples passos é possível rodar uma função de um arquivo via terminal através do Node.js

Deseja programar de forma profissional? Confira o nosso treinamento completo clicando aqui.

Uma plataforma de cursos com projetos completos, comunidade de alunos e muito mais!

Há também o nosso canal no YouTube, com muito conteúdo gratuito de qualidade!

Como passar parâmetros pra função pelo terminal:

Muitas vezes tu não quer só disparar a função, quer mandar um valor pra ela

Dá pra fazer isso direto no comando, é só colocar o argumento dentro dos parênteses da chamada:

node -e ‘require("./file").execute("Matheus")’

Aí no arquivo a função recebe esse valor normalmente:

module.exports.execute = function (nome) { console.log(‘Rodando pelo terminal, ‘ + nome); };

Massa né? 🙂

E se a função for assíncrona?

Caso tua função use async/await ou retorne uma Promise, o require sozinho pode encerrar antes dela resolver

O jeito é tratar o retorno como Promise mesmo, encadeando um then:

node -e ‘require("./file").execute().then(() => console.log("Terminou!"))’

Assim o Node espera a função assíncrona rodar até o fim antes de fechar o processo

Rodar o arquivo inteiro em vez de só a função:

Se tu quer que o arquivo faça o trabalho sozinho ao ser chamado, dá pra chamar a função dentro do próprio arquivo e disparar assim:

node file.js

A diferença é essa: o node -e executa um trecho de código que tu escreve na hora, e o node file.js roda o arquivo inteiro de cima a baixo

Usando import/export (ES Modules):

Se teu projeto usa import e export no lugar de module.exports, a lógica é a mesma, muda só a sintaxe

Nesse caso o require não rola, tu usa o import dinâmico:

node -e ‘import("./file.js").then(m => m.execute())’

Fica de olho: com ES Modules o nome do arquivo costuma precisar vir com a extensão .js ali no import

Deu ‘Cannot find module’? Se liga:

Esse é o erro que mais pega gente nessa hora

Ele quase sempre aparece porque o caminho do arquivo tá errado no require

Repara que o ./ significa ‘a partir da pasta onde tu roda o comando’, então roda o node na mesma pasta do arquivo, ou ajusta o caminho:

node -e ‘require("./pasta/file").execute()’

Já me ferrei uma vez por causa disso haha

Perguntas frequentes:

Dá pra rodar uma função sem exportar ela? Não, o Node precisa que a função esteja exportada (module.exports ou export) pra conseguir acessar de fora do arquivo

Preciso instalar algo pra isso funcionar? Não, basta ter o Node.js instalado, o comando node já vem junto

As aspas simples e duplas importam no comando? Sim, no exemplo as aspas simples envolvem o código e as duplas o caminho do arquivo, no Windows às vezes tu precisa inverter pra não dar erro

Leia também

Escrito por | Matheus Battisti

Matheus Battisti
Fundador da Hora de Codar

Programador apaixonado pelo mundo das tecnologias, sempre buscando em aprender e se aprofundar em linguagens, frameworks e o que mais for necessário para executar um bom trabalho. Agora tem uma nova missão que é de passar seu conhecimento adiante para formar novos programadores e especializar mais os que já são.

Subscribe
Notify of
guest

0 Comentários
Oldest
Newest Most Voted

Formações

Formação Vibe Coding

Formação Vibe Coding

Do Prompt ao Produto: Crie Software Real com IA

  • 474 aulas
  • 20 projetos
  • 39h 27min

Blog | Mais populares