从node.js shell获取我的操作系统

Ale*_*ill 17 javascript operating-system node.js

如何从节点shell访问我的操作系统?

上下文:我正在节点中编写一个脚本,我想用默认程序打开一个文件,执行此操作的命令因操作系统而异.

我已经尝试过标准的javascript获取操作系统的方法,但它们没有用(原因很明显,navigator节点中没有).

是否可以在不安装非标准模块的情况下执行此操作?

Way*_*inn 55

现在有一个os模块:节点操作系统模块文档.它具有获取平台的功能os.platform

文档不提供返回值.所以,我在下面记录了一些内容.结果分别针对Ubuntu 12.04 64位,OS X 10.8.5,Windows 7 64位和Joyent SmartMachine.在节点0.10上进行的测试.

Linux的

  • os.type() : 'Linux'
  • os.platform() : 'linux'
  • os.arch() : 'x64'

OS X(Mac)

  • os.type() : 'Darwin'
  • os.platform() : 'darwin'
  • os.arch() : 'x64'

视窗

  • os.type() : 'Windows_NT'
  • os.platform() : 'win32'
  • os.arch() : 'x64'

SmartMachine

  • os.type() : 'SunOS'
  • os.platform() : 'sunos'
  • os.arch() : 'ia32'

注意:在Windows 7上,64位节点可能会错误地报告os.arch()ia32.这是一个记录在案的错误:os.arch应该是操作系统的体系结构而不是进程


myk*_*hal 15

警告:这可能已经过时了

navigatornode.js中没有对象,因为它不在浏览器中运行.它在系统中运行.导航员的"等同"是process.该对象包含许多信息,例如

process.platform // linux
Run Code Online (Sandbox Code Playgroud)

如果你想运行一个Web浏览器,你必须执行它..

var sys = require('sys')
// open google in default browser
// (at least in ubuntu-like systems)
sys.exec('x-www-browser google.com')
Run Code Online (Sandbox Code Playgroud)

这可能不适用于较新的node.js版本(我有2.x),你可能不得不使用

var child_process = require('child_process')
child_process.exec('x-www-browser google.com')
Run Code Online (Sandbox Code Playgroud)

我想没有简单的方法如何使用"默认应用程序"多平台"运行"任何文件,你必须找到如何在每个操作系统/桌面环境中执行它,并在操作系统检测后执行此操作.


mco*_*ton 5

console.log('这个平台是 ' + process.platform);

您可以在http://nodejs.org/docs/v0.4.10/api/process.html#process.platform找到文档

我在 Mac OS X 上使用 Node v0.4.10 进行了测试