use child_process.exec to execute shell command as non-blocking
refactor router logic to use better practices related to non-blocking, event driven node dev