凌驾于违约之上真的有危险吗;控制台'在节点中
Is there any real danger to overriding the default 'console' in node?
我是一个习惯驱动的生物,console.log/console.error/etc恰好是我本能地用来打印东西的东西。然而,我正试图将我所有的登录节点都驱动到"winston"。我更喜欢在我的文件顶部做一些类似var console = require('./modules/logger');
的事情,然后像往常一样使用console。。根据需要使用额外的参数(否则api基本相同)。由于这是本地化到我正在处理的文件中的,而不是某种全局更改,因此将"控制台"设置为该模块的导出是否有危险?不仅仅是"好吧,这可能会让其他人感到困惑"。
我确实注意到这个问题弹出了一个类似的问题,但它并没有真正回答背后是否存在危险。还有一些其他问题问你是否可以覆盖节点的一些核心,但我没有这么做-我只是使用与"魔法"全局相同的名称进行本地引用。
除了可能以非标准(即意外)的方式覆盖现有控制台函数外,我认为用自己的对象替换全局控制台没有任何危险,只要它提供所有预期的函数和调用约定(函数签名)作为默认控制台。我已经做了很多次了。
如果您确实在全局控制台上为现有函数提供了一些非标准的实现,其签名与其他代码所期望的不同,那么您肯定会遇到问题。
如果在模块或函数作用域中进行替换,则只有该作用域中的引用才会受到影响。
相关文章:
- 节点导出返回一个空对象
- 可以前端maven插件使用节点,npm已经安装
- 控制台返回var不是't定义,但它是
- 在jstree中,如何将指定的节点集中到大型树上
- 节点Js:How to catch a“;没有这样的文件或目录“;读取线模块出错
- 如何从模块链中调用函数.导出到节点中
- 节点JS express和控制台输出到命令行与浏览器
- 节点控制台的共同描述模式
- 凌驾于违约之上真的有危险吗;控制台'在节点中
- 如何从节点-网络工作者-线程向控制台发送错误
- 节点.js spawn:控制台.log 不记录两次,process.stdin.on('data',ca
- “控制台.log”是否在节点.js中缓冲输出
- 节点.js 5.5.0 控制台.log不会记录
- 如何通过 ajax 单击时从 javascript 文件执行节点(控制台)命令
- 节点.js控制台.log抛出我未定义
- 节点类控制台的方法日志未连接到该文件
- 如何检测脚本是否直接从节点控制台执行
- 代码在运行节点控制台时有效,但在调用节点
时无效 - 控制台.log和记录器.log在节点JS中的区别
- 节点不使用控制台日志输出