---
title: roNodeJs
slug: develop/es/ronodejs
docTags: 
createdAt: 2025-03-11T07:07:18.733Z
---

*roNodeJs* es un objeto BrightScript que permite iniciar una instancia de Node.js®. Estas instancias de Node.js tendrán acceso a todos los módulos de BrightSign Node.js como módulos integrados. roNodeJs también proporciona mecanismos para comunicarse entre los entornos JavaScript y BrightScript para aplicaciones más complejas.

## Creación de objetos

*roNodeJs* se instancia con un nombre de archivo y parámetros opcionales. 

```text
node = CreateObject("roNodeJs", "index.js", {message_port:my_message_port, arguments: ["arg1", "arg2"]})
```

En OS 8.2.17 y versiones posteriores, también puede pasar un parámetro opcional *argumentos\_nodo* que proporciona argumentos al propio intérprete de node (a diferencia de *argumentos* que proporciona argumentos a la aplicación JavaScript que se ejecuta dentro de Node):

```text
node = CreateObject("roNodeJs", "index.js", {message_port:my_message_port, node_arguments: ["arg"], arguments: ["arg1", "arg2"]})
```

- `message_port:` Opcional. Permite la comunicación con aplicaciones JavaScript. 
- `argumentos:` Opcional. Pasa argumentos a la instancia de node. 
- `argumentos_del_nodo:` Opcional. Pasa argumentos al ejecutable node.js, por ejemplo, para habilitar el inspector remoto para node.js. *Argumentos\_del\_nodo* puede aceptar múltiples argumentos.
- `env_vars:` Opcional. Pasa variables de entorno (proporcionadas como un arreglo asociativo) a la aplicación node.js. *Nota:* Los nombres de las variables de entorno distinguen entre mayúsculas y minúsculas, pero *roAssociativeArray* no distingue entre mayúsculas y minúsculas de forma predeterminada y la sintaxis literal de BrightScript para arreglos asociativos fuerza todos los nombres de clave a minúsculas. Para garantizar un comportamiento correcto, llame a `SetModeCaseSensitive()` y use el método `AddReplace()` para agregar variables al arreglo. O puede usar el siguiente ejemplo, que es ligeramente menos verboso que `AddReplace():`

```text
a={}
a.SetModeCaseSensitive()
a["KeY"] = 1
a["key"] = 2
print a  ' returns both key and KeY
```

## PostJsMessage()

`PostJsMessage (data como AssociativeArray) como Boolean`
Publica una colección de pares clave\:valor en la clase JavaScript BrightScript *MessagePort* . Este método toma un arreglo asociativo pero no admite arreglos asociativos anidados. Consulte [esta página](docId\:J-X4EOXRP-0fIABapc2Ef) para obtener más detalles.

## Eventos de roNodeJs

Consulte [esta página](docId\:F-cwPgnxnbI4kM6C2fWJu) para obtener información sobre eventos de roNodeJs.

## Ejemplos

Para habilitar inspector usando node\_arguments:

```text
node_js = CreateObject("roNodeJs", "main.js", {message_port: msgPort, node_arguments: ["--inspect=0.0.0.0:2999"], arguments:["node_application_argument1", "node_application_argument2"})
```

Para cambiar un directorio al directorio del archivo JavaScript actual:

```text
proc.chdir(__dirname)
```

Para establecer un temporizador y evitar que node se cierre:

```text
setInterval(function(){console.log("ping"}, 10000)
```

Para pasar argumentos a roNodeJs:

```text
node = CreateObject("roNodeJs", "index.js",
{node_arguments: ["-r", "dotenv/config"], arguments: ["dotenv_config_path=/storage/sd/.env"]})
```

Tenga en cuenta que "node\_arguments" son argumentos que aparecen antes del nombre de archivo, mientras que "arguments" aparecen después del nombre de archivo.
