node.js 中的必需模块始终未定义

required module in node.js is always undefined

目前正在经历一些绝对莫名其妙的事情。我需要通过 npm (npm --save install qrcode).

安装的 'qrcode' 模块
const {
    QRCode
} = require('qrcode');

该模块在我的 package.json 中列出并且确实存在于 node_modules 中。但是,这绝对总是 'undefined'。当将鼠标悬停在 require 语句中的字符串上时,我看到它是如何引用我的 local/AppData 目录中的 node_modules 目录的,我假设它是模块的全局目录。使用此路径始终会导致 'undefined'。然后我尝试切换路径以引用本地 node_modules 二维码,但仍然 'undefined'。我已经阅读了此处的所有内容 https://www.npmjs.com/package/qrcode,但对我遇到的问题没有帮助,而且 google 上似乎没有任何关于此的对话。

TypeError: Cannot read property 'toDataURL' of undefined

当使用 'qrcode' 字符串时,它使用了 @types 文件夹中的一些东西,我认为它是用于我没有使用的 ES6 的。不知道如何进行这里没有任何内容,非常感谢任何帮助!

Node.js 来自 npm 包页面的示例(要是这么简单就好了)

var QRCode = require('qrcode')
 
QRCode.toDataURL('I am a pony!', function (err, url) {
  console.log(url)
})

当你这样做时:

const {
    QRCode
} = require('qrcode');

您期望模块导出的对象上有 QRCode 属性。这在 ES6 中称为对象析构赋值。它是 shorthand 并等效于此:

const QRCode = require('qrcode').QRCode;

而且,由于模块导出的对象没有 .QRCode 属性,你除了 undefined.

什么也得不到

相反,它导出的顶级对象是 QRCode 对象,因此您需要这样做:

const QRCode = require('qrcode');

如果您想要导出特定的 属性,您可以这样做:

const { toDataURL } = require('qrcode');