【问题标题】:Reason for node module @kenjiuno/msgreader error: MsgReader is not a constructor节点模块@kenjiuno/msgreader 错误的原因:MsgReader 不是构造函数
【发布时间】: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,但大概这没有什么区别?

有什么想法吗?

【问题讨论】:

  • 为什么有人否决了这个问题?它到底有什么问题?

标签: javascript node.js npm module package


【解决方案1】:

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

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2023-03-04
    • 1970-01-01
    • 1970-01-01
    • 2020-11-24
    • 2017-10-30
    • 2018-11-17
    • 2017-06-19
    • 1970-01-01
    相关资源
    最近更新 更多