Launch an external application from node.js

别说谁变了你拦得住时间么 提交于 2019-11-28 09:54:31

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.

In below example I have used textmate "mate" command to edit file hello.js, you can run any command with child_process.exec but the application you want to open file in should provide you with command line options.

var exec = require('child_process').exec;
exec('mate hello.js');
var childProcess = require('child_process');
childProcess.exec('start Example.xlsx', function (err, stdout, stderr) {
        if (err) {
        console.error(err);
        return;
    }
    console.log(stdout);
    process.exit(0);// exit process once it is opened
})

Emphasis on where 'exit' is called. This executes properly in windows.

Simply call your file (any file with extension, including .exe) from the command promp, or programmatically:

var exec = require('child_process').exec;
exec('C:\\Users\\Path\\to\\File.js', function (err, stdout, stderr) {
    if (err) {
        throw err;
    }
})

If you want to run a file without extension, you can do almost the same, as follow:

var exec = require('child_process').exec;
exec('start C:\\Users\\Path\\to\\File', function (err, stdout, stderr) {
    if (err) {
        throw err;
    }
})

As you can see, we use start to open the File, letting windows (or windows letting us) choose an application.

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!