javascript - 节点模块@kenjiuno/msgreader 错误的原因:MsgReader 不是构造函数
问题描述
我什至无法从相对流行的@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,但大概这没有什么区别?
有什么想法吗?
解决方案
我最终更改了 require 语句以添加["default"]
解决问题的方法:
const MsgReader = require('@kenjiuno/msgreader')["default"]
我查看了库代码,并使用“默认”语法根据导出语句进行了猜测。这个问题与commonJS有关吗?如果有人可以向我解释这一点,那就太好了!
推荐阅读
- javascript - onClick 时不打印结果的测验问题
- r - 无法在 R 版本 3.4.3 中安装 devtools
- ssl - Nagios check_cert - 严重 - 无法建立 SSL 连接
- react-native - 是否可以使用组件顶部的关闭按钮打开错误屏幕?
- c++ - 输出文件在位图的文件末尾缺少填充。为什么是这样?
- c# - 我真的必须创建多个模型吗?
- python - 如何找到圆与矩形相交的间隔
- apache-spark - Spark JobServer 可以使用 Cassandra 作为 SharedDb
- android - ConstraintLayout 防止顶部和底部小部件重叠
- angular - 如何翻译表格数据中的原始 HTML 代码