# node:module

O módulo `node:module` dá acesso ao sistema de módulos do Node.js, que abrange CommonJS e ES modules, como descreve a [documentação do module do Node.js](https://nodejs.org/api/module.html). No Node.js, o sistema de módulos organiza o código em arquivos e bibliotecas reutilizáveis. No Azion Runtime, `import module from "node:module"` faz o build, e você o usa para inspecionar o sistema de módulos, por exemplo para listar os módulos nativos que uma function pode importar.

Os membros abaixo se comportam da mesma forma em uma function com deploy feito e com `azion dev`. `module.builtinModules` é um array de 65 nomes, de `_http_agent` a `zlib`. `module.createRequire()` retorna `undefined` em vez de uma função require, então uma chamada ao resultado dela lança um `TypeError`. `module.isBuiltin()` não existe. `SourceMap`, `_findPath`, `_initPaths`, `_load`, `_nodeModulePaths`, `_preloadModules`, `_resolveFilename` e `_resolveLookupPaths` não são suportados.

---

## Exemplo

A function abaixo registra em log o nome de cada módulo nativo e responde quando a lista termina:

```javascript
/**
 * An example of using the Node.js Module API in an Azion Function.
 * @example
 * // Build and run locally with the Azion CLI:
 * azion build
 * azion dev
 */
import module from "node:module";

/**
 * An example of using the Node.js Module API in an Azion Function.
 * @param {*} event
 * @returns {Promise<Response>}
 */
const main = async (event) => {
  return new Promise((resolve, reject) => {
    module.builtinModules.forEach((moduleName) => {
      console.log(moduleName);
    });
    resolve(new Response("Done"));
  });
};

export default main;
```

A function registra em log os 65 nomes, um por linha, de `_http_agent` a `zlib`, e responde com este corpo:

```text
Done
```

---

## Recursos relacionados

- [APIs do Node.js](/pt-br/documentacao/devtools/runtime/node.md): Todos os módulos do Node.js que o Azion Runtime resolve e como cada um se comporta.
- [Use APIs do Node.js com polyfills](/pt-br/documentacao/guias/desenvolvimento-de-aplicacoes/functions-e-runtime/use-polyfills.md): Como o build resolve APIs do Node.js por meio de polyfills, mostrado em um projeto JavaScript.
- [Azion CLI build](/pt-br/documentacao/devtools/cli/build.md): O comando que faz o build de um projeto na sua máquina e grava o resultado na pasta `.edge`.
- [Handlers](/pt-br/documentacao/devtools/runtime/api-reference/handlers.md): O formato de handler recomendado e o aviso que `azion build` imprime para o formato `export default main` que este exemplo usa.
