roNodeJsEvent
If an roMessagePort is attached to an roNodeJs, it will receive roNodeJsEvent objects when something happens to the parent roNodeJs instance.
ifUserData
SetUserData(user_data As Object)
Sets the user data that will be returned when events are raised.
GetUserData() As Object
Returns the user data that has previously been set via SetUserData()
. It will return Invalid
if no data has been set.
ifNodeJsEvent
GetData() As roAssociativeArray
Returns the event data as an associative array with the following key/value pairs:
reason
string: The cause of the event, which can be one of the following:process_exit
:Â The nodeJs instance has exited.message
: The nodeJs instance has sent a message.
exit_code
number:Â Â This field is only present if the value of theÂreason
 field value isÂprocess_exit
. It will return the exit code from the Node.js® process, as described at Process | Node.js v23.2.0 Documentation.  Theexit_code
field is only defined from OS 8.2 onwards. Note that the Node.js script could also use these codes for its own purposes.Âmessage
string: If thereason
 field value isÂmessage
, this field returns the contents of the message.
Example
The following event loop waits for a nodeJs event and reports the events:
while true
ev = wait(0, gaa.mp)
print "=== BS: Received event ";type(ev)
if type(ev) = "roNodeJsEvent" then
eventData = ev.GetData()
if type(eventData) = "roAssociativeArray" and type(eventData.reason) = "roString" then
if eventData.reason = "process_exit" then
print "=== BS: Node.js instance exited with code " ; eventData.exit_code
else if eventData.reason = "message" then
print "=== BS: Received message "; eventData.message
' To use this: msgPort.PostBSMessage({text: "my message"});
else
print "======= UNHANDLED NODEJS EVENT ========="
print eventData.reason
endif
else
print "=== BS: Unknown eventData: "; type(eventData)
endif
endif
endwhile
Â