Thanks for the reply.
I know the port is open for two reasons, one is that Javascript throws an exception if you call port.open() and it doesn't work. The second is that on some occasions I have actually been able to read the 'hello' message and write it to the serial monitor using Serial.read() and Serial.println(). But even on those occasions, the servo motor doesn't move.
It may be as you say, that the message is being written to the serial port before the Arduino can read it. I will experiment with your solution, thanks for the suggestion!