gpt4 book ai didi

node.js - 检查模块是否存在,如果存在,则用它替换控制台,否则不存在。不工作,控制台未定义

转载 作者:太空宇宙 更新时间:2023-11-04 01:03:53 25 4
gpt4 key购买 nike

我正在使用clim我用它替换了 console 对象。但我只想在模块存在时替换它。

try {
var console = require('clim')();
} catch(err) {}
console.log('checking..');

如果该模块不存在,则会导致控制台未定义。

奇怪的是,保存控制台对象并替换也不起作用

var console_backup = console;
try {
var console = require('clim')();
} catch(err) {
if (err) var console = console_backup;
}
console.log('checking..');

clim 不存在时,仍然会抛出错误(console 未定义)。

http://runnable.com/U8vlFEpIYtkiV2N9/24850946-console-for-node-js

如何使用clim(当它存在时)替换console

最佳答案

您的第二次尝试已经很接近了,但您需要在设置 console_backup 时明确标识您想要引用全局 console,否则它将引用提升的本地 console 变量,即使您尚未声明它:

var console_backup = global.console;
try {
var console = require('clim')();
} catch(err) {
if (err) var console = console_backup;
}
console.log('checking..');

或简化为:

try {
var console = require('clim')();
} catch(err) {
if (err) console = global.console;
}
console.log('checking..');

关于node.js - 检查模块是否存在,如果存在,则用它替换控制台,否则不存在。不工作,控制台未定义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24850946/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com