节点模块@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 模块之路 异常处理基础 异常处理其他 报错处理