javascript - Node 模块@kenjiuno/msgreader错误: MsgReader is not a constructor的原因

标签 javascript node.js npm module package

我什至无法从相对流行的 @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 - Node 模块@kenjiuno/msgreader错误: MsgReader is not a constructor的原因,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68757105/

相关文章:

node.js - Mongodb 通过对象 ID 在数组中查找文档

node.js - npm 错误! cb() 从未调用过!尝试运行 npm install 命令时出错

npm - webpack 构建 css 规则与开发中的顺序不同

javascript - 获取是否在 jquery/ES6 中选中复选框

javascript - Swfobject 正在将 "&"(与符号)更改为 "&"如何停止它?

debugging - 在 node.js 应用程序中绘制内存使用情况的不同工具?

node.js - Node.js 还支持 UDP 广播吗?

macos - 安装了触发器应用程序,安装了node.js,触发器说它无法在Mac上运行npm

javascript - setTimeout 在循环表达式中只发生一次

php - 如何在加载页面时提交 HTML 表单?