我们如何检测我们的脚本是通过命令行还是通过浏览器启动的?

时间:2014-03-06 19:08:50

标签: node.js

在PHP中,有PHP_SAPI变量,因此在PHP中我做了:

 if('cli' == PHP_SAPI)
 {
   //my code
 }

Node.JS中的等价物是什么?

3 个答案:

答案 0 :(得分:0)

if (typeof Window === 'undefined') {
    //node
}
else {
    //browser
}

或者你可以把它变成一个功能。

function isBrowser() {
    return typeof Window !== 'undefined';
}

答案 1 :(得分:0)

如果您想检测到您在Node.js中,请查看process.title

最好能够检测出您需要的任何功能,因为您希望代码与尽可能多的运行时兼容。

http://nodejs.org/api/process.html#process_process_title

答案 2 :(得分:0)

检测全局变量的名称可能很有用:

var global = function(){ return this }()

switch (global.toString().toLowerCase()) {
  case '[object window]':
    return "I'm a browser"
  case '[object global]':
    return "I'm a node.js"
  default:
    return "wat?"
}

你仍然可以假装这个,但我怀疑有人会这样做。