节点模块@kenjiuno/msgreader 错误的原因:MsgReader 不是构造函数

Posted

技术标签:

【中文标题】节点模块@kenjiuno/msgreader 错误的原因:MsgReader 不是构造函数【英文标题】:Reason for node module @kenjiuno/msgreader error: MsgReader is not a constructor 【发布时间】:2021-10-15 19:20:43 【问题描述】:

我什至无法从相对流行的@kenjiuno/msgreader 中获取示例代码的第一行,以便解析 Outlook .msg 文件以使其正常工作。我已经用 npm 成功安装了模块,我的代码是:

const fs = require('fs')
const MsgReader = require('@kenjiuno/msgreader')

const msgFileBuffer = fs.readFileSync('./test-email.msg')
const testMsg = new MsgReader(msgFileBuffer)

但我收到错误消息:“MsgReader 不是构造函数”。

MsgReader 的快速控制台日志返回 default: [Function: MsgReader] 。我也尝试将它作为一个函数(没有'new'关键字)来执行,这也产生了一个错误。

我的代码和示例代码之间的唯一区别是它们使用了 import (import MsgReader from '@kenjiuno/msgreader'),而我使用了 require,但大概这没有什么区别?

有什么想法吗?

【问题讨论】:

为什么有人否决了这个问题?它到底有什么问题? 【参考方案1】:

我最终更改了 require 语句以添加 ["default"] 从而解决了问题:

const MsgReader = require('@kenjiuno/msgreader')["default"]

我查看了库代码并使用“默认”语法根据导出语句进行了猜测。这个问题与commonJS有关吗?如果有人可以向我解释这一点,那就太好了!

【讨论】:

以上是关于节点模块@kenjiuno/msgreader 错误的原因:MsgReader 不是构造函数的主要内容,如果未能解决你的问题,请参考以下文章

python 模块之路 异常处理基础 异常处理其他 报错处理

报错模块没有某个属性

(22)odoo 安装旧模块报错处理

python模块安装报错大全

SpringBoot 搭建pom文件parent节点报错解决方法

导入openpyxl模块后运行会报错