调用audit.request报Cannot read property 'request' of undefined如何解决
报错原因
createLogger是函数,你未调用就直接从函数对象上解构audit属性,无法取到函数执行后返回的audit实例,拿到的audit为undefined,调用undefined.request就触发了该报错。
你当前的写法是从createLogger函数本身的属性中找audit,但该属性只存在于createLogger执行后的返回值中。
修复方案
- 方案1(推荐,适配现有导出逻辑):调用
createLogger函数后再解构取值,代码修改为:
const { createLogger } = require('@website/website-node-logger'); // 调用函数后再解构,如有自定义配置可传入括号内 const { audit } = createLogger();
注意:如果LoggerSettings为必填参数,调用时必须传入合规的配置项,避免引发后续其他报错。
- 方案2(适配全局单例场景):如果业务需要直接导出全局可用的
audit实例,无需每次调用生成新实例,可以修改logger模块的实际实现代码(非.d.ts声明文件):
// logger模块实现文件中新增代码 const {audit: globalAudit, logger: globalLogger} = createLogger(/* 传入全局通用配置 */) export {globalAudit as audit, globalLogger as logger, createLogger}
修改后即可直接导入audit使用:
const { audit } = require('@website/website-node-logger');
内容的提问来源于stack exchange,提问作者vivek modi
相关产品推荐
相关产品推荐

