Javascript JWT的ES6进口

Javascript JWT的ES6进口,javascript,node.js,authentication,npm,jwt,Javascript,Node.js,Authentication,Npm,Jwt,我正在制作一个nodeJS web应用程序,并使用JWT进行身份验证。我所有的工作都是在ES6模块中进行的,我想以同样的方式导入JWT,但显然这个包还不支持它。我不能使用旧的require()格式,因为它会抛出错误,因为我已将其设置为package.json中的模块。有办法解决这个问题吗?还是我必须找到另一个图书馆 编辑:我已经修复了解构的问题,但它仍然不起作用。显然它根本找不到模块。我确保软件包实际上已经安装并更新,但仍然不起作用 错误[ERR_MODULE_NOT_FOUND]:找不到从/p

我正在制作一个nodeJS web应用程序,并使用JWT进行身份验证。我所有的工作都是在ES6模块中进行的,我想以同样的方式导入JWT,但显然这个包还不支持它。我不能使用旧的require()格式,因为它会抛出错误,因为我已将其设置为package.json中的模块。有办法解决这个问题吗?还是我必须找到另一个图书馆

编辑:我已经修复了解构的问题,但它仍然不起作用。显然它根本找不到模块。我确保软件包实际上已经安装并更新,但仍然不起作用

错误[ERR_MODULE_NOT_FOUND]:找不到从/path/to/file.js导入的包“jsonwebtoken”

import jwt from ' jsonwebtoken'
const { sign } = jwt

class sampleClass {

   static func(user) {
      return sign(
            {
                _id: user._id,
                name: user.name,
            },
            'sample key',
            {
                expiresIn: '7d',
            },
      )
   }

}

你需要导入它,然后像这样分配它

从“jsonwebtoken”导入jwt;
const{sign,verify}=jwt;
const-token=符号({“d”:“dd”},“secret”,{expiresIn:300})
console.log(令牌);
const verifycode=验证(令牌,“机密”);

console.log(验证码)您需要导入它,然后像这样分配它

从“jsonwebtoken”导入jwt;
const{sign,verify}=jwt;
const-token=符号({“d”:“dd”},“secret”,{expiresIn:300})
console.log(令牌);
const verifycode=验证(令牌,“机密”);

console.log(验证码)你能试试吗:

  • 创建文件夹
  • Do
    npm init
  • 创建一个文件
    app.js
  • 安装json web令牌
    npm i jsonwebtoken
  • 转到
    package.json
    并添加
    “类型”:“模块”
  • 在您的
    app.js中写入以下内容:
    从“jsonwebtoken”导入jwt
  • 执行它:
    节点——实验模块app.js

  • 如果您遇到错误,请告诉我,您能尝试一下吗:

  • 创建文件夹
  • Do
    npm init
  • 创建一个文件
    app.js
  • 安装json web令牌
    npm i jsonwebtoken
  • 转到
    package.json
    并添加
    “类型”:“模块”
  • 在您的
    app.js中写入以下内容:
    从“jsonwebtoken”导入jwt
  • 执行它:
    节点——实验模块app.js

  • 如果出现错误,请告诉我

    您是否尝试使用实验标志
    节点执行文件--experimental modules app.js
    不行,您不能使用es6导入,您做错了。是的,es6导入功能适用于所有其他包,问题在于JWT不支持es6导入,github上已经提出了这个问题,但是除了手动修改包之外没有其他解决方案,这会导致巨大的包大小。你在开玩笑吗?我刚刚安装了jwt,一切都很好。我不知道你想做什么,发布你的代码。我已经更新了,显然出现了一个新错误。你是否尝试使用实验标志
    节点--experimental modules app.js执行你的文件--experimental modules app.js
    不行,你不能使用es6导入,你做错了。是的,es6导入功能正在与所有其他软件包一起工作,JWT的问题在于它不支持ES6导入,这个问题已经在github上提出了,但是除了手动修改包之外没有其他解决方案,这导致了巨大的包大小。你在开玩笑吗?我刚刚安装了jwt,一切都很好。我不知道你想做什么,发布你的代码。我已经更新了,并且得到了一个新的错误。显然现在根本找不到包,我已经用错误更新了问题,我得到了解决办法。我想我会把文件复制到新的项目文件夹中,显然现在根本找不到包,我已经更新了问题的错误,我得到了解决办法,我想我只是复制文件到新的项目文件夹