Javascript 如何检查我的代码是否在NodeJs中运行?
我有一段JavaScript,设计用于在NodeJS中运行,否则它会中断,例如,它使用require。我想在运行时检查它是否在NodeJS中,否则会生成一条清晰的错误消息 我已经看到了如何检查代码是否在浏览器中运行的说明。但是它不会检查是否有NodeJSJavascript 如何检查我的代码是否在NodeJs中运行?,javascript,node.js,Javascript,Node.js,我有一段JavaScript,设计用于在NodeJS中运行,否则它会中断,例如,它使用require。我想在运行时检查它是否在NodeJS中,否则会生成一条清晰的错误消息 我已经看到了如何检查代码是否在浏览器中运行的说明。但是它不会检查是否有NodeJS 如何检查JavaScript是否在NodeJS中运行?您可以检查process对象是否已定义,process.argv数组的第一个元素是否为node 比如: if(typeof process !== 'undefined' &&
如何检查JavaScript是否在NodeJS中运行?您可以检查process对象是否已定义,process.argv数组的第一个元素是否为node 比如:
if(typeof process !== 'undefined' && process.argv[0] === "node") {
// this is node
}
更多信息。您可以检查流程对象是否已定义,process.argv数组的第一个元素是否为node 比如:
if(typeof process !== 'undefined' && process.argv[0] === "node") {
// this is node
}
更多信息。防弹解决方案将检查全局窗口对象。在浏览器中,它存在,并且无法删除。在node.js中,它不存在,或者如果因为有人定义了它而存在,则可以将其删除。在node.js中,全局对象称为全局对象,可以将其删除 这样做的函数如下所示:
function is_it_nodejs() {
if (typeof window === 'undefined') return true;
var backup = window,
window_can_be_deleted = delete window;
window = backup; // Restoring from backup
return window_can_be_deleted;
}
防弹解决方案将检查全局窗口对象。在浏览器中,它存在,并且无法删除。在node.js中,它不存在,或者如果因为有人定义了它而存在,则可以将其删除。在node.js中,全局对象称为全局对象,可以将其删除 这样做的函数如下所示:
function is_it_nodejs() {
if (typeof window === 'undefined') return true;
var backup = window,
window_can_be_deleted = delete window;
window = backup; // Restoring from backup
return window_can_be_deleted;
}
您是否将代码设计为在多个环境中运行?如果不是,那么肯定没有必要检查环境是否正确。。。用户有责任检查它适用于哪个环境。@Nathan MacInnes:好吧,在现实生活中,用户可以在任何地方运行代码,然后给我们发电子邮件,问我们为什么他们会有大量奇怪的错误。这恰好与您设计的代码在多个环境中运行是一样的吗?如果不是,那么肯定没有必要检查环境是否正确。。。用户有责任检查它是用于哪个环境的。@Nathan MacInnes:好吧,在现实生活中,用户可以在任何地方运行代码,然后给我们发电子邮件,问我们为什么他们有大量奇怪的错误。这恰好是