从Node获取处理器架构

Eli*_*oto 2 node.js

我知道我可以使用process.platform或os模块获取操作系统的详细信息,但我也想知道操作系统是32位还是64位.

那可能吗?

小智 10

它比这更容易,只需使用process.arch.它将返回x64或x32取决于架构.

  • 另外,`process.arch`在树莓派上返回`arm`(可能是其他的arm设备) (2认同)
  • “‘process.arch’属性返回一个字符串,用于标识操作系统 CPU 架构**Node.js 二进制文件是为其编译的**。” 您可以在 64 位 Windows 上运行 32 位 Node.js。 (2认同)

Âng*_*tto 10

您只需在终端上运行以下代码:

node -e "console.log(process.arch)"
Run Code Online (Sandbox Code Playgroud)

这将返回您的 Node 构建的架构。检查您是否在 MacOS 上的 Rosetta 2 中运行非常有用。


err*_*per 4

我会使用process.env['MACHTYPE']或process.env['HOSTTYPE']。如果其中之一是undefined,则检查uname -m(这应该适用于所有 POSIX 系统,尽管输出实际上可以是任何字符串,请参阅 uname(1P))。

var exec = require('child_process').exec, arch;

exec('uname -m', function (error, stdout, stderr) { 
  if (error) throw error;
  arch = stdout;
});
Run Code Online (Sandbox Code Playgroud)

好吧,可能它并不像您希望的那么简短,但是您可能会发现大量的 shell 脚本,它们可以为您运行的任何系统执行此操作,并且您可以只运行此类脚本。这样,您只需运行一件事并检查 Node 应用程序的输出。

另一种解决方案是用 C++ 为 Node 编写一个模块,该模块将检查低级系统功能,包括字节顺序以及可能需要检查的其他任何内容。有很多关于如何检查这些事情的例子。

  • `process.env['PROCESSOR_ARCHITECTURE']` (3认同)