有没有可靠的方法来检测io.js或node.js是否正在运行?

我能够推断出node.js或io.js是否运行的唯一方法是检查process.versions.node 。 在io.js中,我得到1.0.4。

我确定有更好的方法 – 有人知道吗?

现在最可靠的解决scheme是执行node -h ,看它是否包含iojs.org子string。 如果是这样 – 这是iojs

 function isIojs(callback) { require('child_process').exec(process.execPath + ' -h', function(err, help) { return err ? callback(err) : callback(null, /iojs\.org/.test(help)); }); } 

这种方法的很大一部分 – 它是asynchronous的。 于是我写了一个简化工作的小图书馆: is-iojs 。

但坦率地说:谁知道节点版本1何时会被释放,可能永远不会。 所以我认为现在仅仅基于process.version就足够了:

 var isIojs = parseInt(process.version.match(/^v(\d+)\./)[1]) >= 1; 

你也可以检查process.execPathstring,但是据我所知,这种方法不适用于windows。