# Compatibilidade APIs Node.js - VM

O módulo `vm` no Node.js fornece uma maneira de executar código JavaScript dentro de um contexto de máquina virtual. Isso permite que os desenvolvedores executem código em um ambiente isolado, o que pode ser útil para várias aplicações, como executar código gerado pelo usuário, testes ou isolar a execução de código do aplicativo principal.

```javascript
/**
 * An example of using Node.js VM API in an Azion Functions.
 * Support:
 * - Partially supported (Extended by library `vm-browserify`)
 * @module runtime-apis/nodejs/vm/main
 * @example
 * // Execute with Azion Bundler:
 * npx edge-functions build
 * npx edge-functions dev
 */
import vm from "node:vm";

// Set a global variable because bundler esbuild minify the code and rename the variable.
globalThis.contextVar = "initial value";

/**
 * An example of using the Node.js VM API in an Azion Functions.
 * @param {*} event
 * @returns {Promise<Response>}
 */
const main = async (event) => {
  const vmResult = vm.runInThisContext(
    'globalThis.contextVar = "change by vm";'
  );
  console.log(
    `vmResult: '${vmResult}', globalThis.contextVar: '${globalThis.contextVar}'`
  );
  return new Response("Done!", { status: 200 });
};

export default main;w
```