roNodeJs
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.
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):
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():
a={}
a.SetModeCaseSensitive()
a["KeY"] = 1
a["key"] = 2
print a ' returns both key and KeYPostJsMessage()
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 para obtener más detalles.
Eventos de roNodeJs
Consulte esta página para obtener información sobre eventos de roNodeJs.
Ejemplos
Para habilitar inspector usando node_arguments:
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:
proc.chdir(__dirname)Para establecer un temporizador y evitar que node se cierre:
setInterval(function(){console.log("ping"}, 10000)Para pasar argumentos a roNodeJs:
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.