Launch an external application from node.js

Pete Gardner picture Pete Gardner · Jul 18, 2013 · Viewed 28k times · Source

I'm writing a desktop web app that uses node.js to access the local file system. I can currently use node.js to open and copy files to different places on the hard drive. What I would also like to do is allow the user to open a specific file using the application that is associated with the file type. In other words, if the user selects "myfile.doc" in a Windows environment, it will launch MSWord with that file.

I must be a victim of terminology, because I haven't been able to find anything but the spawning of child processes that communicate with node.js. I just want to launch a file for the user to view and then let them decided what to do with it.

Thanks

Answer

Gntem picture Gntem · Jul 19, 2013

you can do this

var cp = require("child_process");
cp.exec("document.docx"); // notice this without a callback..
process.exit(0); // exit this nodejs process

it not safe thought, to ensure that the command show no errors or any undesired output

you should add the callback parameter child_process.exec(cmd,function(error,stdout,stderr){})

and next you can work with events so you won't block execution of script or even make use of a external node.js script that launches and handles outputs from processes which you spawn from a "master" script.