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上进行的测试.
os.type()
: 'Linux'
os.platform()
: 'linux'
os.arch()
: 'x64'
os.type()
: 'Darwin'
os.platform()
: 'darwin'
os.arch()
: 'x64'
os.type()
: 'Windows_NT'
os.platform()
: 'win32'
os.arch()
: 'x64'
os.type()
: 'SunOS'
os.platform()
: 'sunos'
os.arch()
: 'ia32'
注意:在Windows 7上,64位节点可能会错误地报告os.arch()
为ia32
.这是一个记录在案的错误:os.arch应该是操作系统的体系结构而不是进程
myk*_*hal 15
警告:这可能已经过时了
navigator
node.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)
我想没有简单的方法如何使用"默认应用程序"多平台"运行"任何文件,你必须找到如何在每个操作系统/桌面环境中执行它,并在操作系统检测后执行此操作.
console.log('这个平台是 ' + process.platform);
您可以在http://nodejs.org/docs/v0.4.10/api/process.html#process.platform找到文档
我在 Mac OS X 上使用 Node v0.4.10 进行了测试
归档时间: |
|
查看次数: |
17985 次 |
最近记录: |