Javascript 使用OS'打开外部文件;使用NodeJS和Electron的默认应用程序(带Word的docx等)

Javascript 使用OS'打开外部文件;使用NodeJS和Electron的默认应用程序(带Word的docx等),javascript,node.js,electron,Javascript,Node.js,Electron,我正在使用NodeJS/Electron作为桌面应用程序 我想做的是用操作系统的默认应用程序打开一个文件,比如.docx和Word 到目前为止,我尝试的是使用child_process.spawn、.exec或.exefile的方法,但没有得到任何结果 这是我的实际代码: var fs = require('fs'), cp = require('child_process'); cp.spawn(__dirname + '/test.docx'); 提前感谢。使用Electron的

我正在使用NodeJS/Electron作为桌面应用程序

我想做的是用操作系统的默认应用程序打开一个文件,比如.docx和Word

到目前为止,我尝试的是使用child_process.spawn、.exec或.exefile的方法,但没有得到任何结果

这是我的实际代码:

var fs = require('fs'),
    cp = require('child_process');

cp.spawn(__dirname + '/test.docx');
提前感谢。

使用Electron的
外壳
模块提供的功能,例如:

const shell = require('electron').shell;
const path = require('path');

shell.openItem(path.join(__dirname, 'test.docx'));
根据文档,
shell
模块应该在主/浏览器和渲染器进程中都可用

注:Electron 9.0.0shell.openItemAPI已被异步
shell.openPath
API替换


在此添加新electron版本(9+)和导入的代码段:

从“electron”导入{shell};
从“路径”导入路径;
openPath(path.join(uu dirname,'test.docx');

这里已经回答了:我到了这里,错过了一个特定于电子的问题。接受的解决方案只能在Electron应用程序中工作。对于Node.js,在Electron应用程序之外,通常还有一个单独的问题:我们能得到一个关闭的信号吗?在我知道应用程序已经关闭的地方,有没有回电话?@django没有,这是一种“失火后忘记”的事情。如果要检测外部应用程序是否已关闭,则需要使用@VadimMacagon生成它。我一直在尝试
ls.on('close'
事件),但它会在ms word打开后立即被触发。请发布示例,或者我应该为其创建另一个问题吗?