[英]ES6 imports for JWT
我正在制作一个 nodeJS web 应用程序,我正在使用 JWT 进行身份验证。 我所有的工作都在 ES6 模块中,我想以相同的方式导入 JWT,但显然 package 还不支持它。我不能使用旧的 require() 格式,因为它会抛出错误,因为我已经将其设置为我的 package.json 中的模块。 有没有办法解决这个问题,还是我必须完全找到另一个图书馆?
编辑:我已经解决了解构问题,但它仍然无法正常工作。 显然它根本找不到模块。 我确保 package 实际上已安装和更新,但仍然无法正常工作
错误 [ERR_MODULE_NOT_FOUND]:找不到从 /path/to/file.js 导入的 package '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',
},
)
}
}
你需要导入它然后像这样分配它
import jwt from 'jsonwebtoken'; const { sign, verify } = jwt; const token = sign({"d":"dd"}, "secret", {expiresIn: 300}) console.log(token); const verifycode = verify(token, "secret"); console.log(verifycode);
你能试试吗:
npm init
app.js
npm i jsonwebtoken
package.json
并添加"type": "module"
app.js
中写入: import jwt from "jsonwebtoken"
node --experimental-modules app.js
如果您收到错误,请告诉我
如果您使用的是 jwt v8,只需以这种方式导入 jsonwebtoken:
import * as jwt from 'jsonwebtoken'
要么
import { sign, decode, verify } from 'jsonwebtoken'
您在import jwt from ' jsonwebtoken'
中有额外的空间
应该只是import jwt from 'jsonwebtoken'
我刚刚测试过,它在我的电脑上运行良好
我正在使用 typescript 编写我的节点服务器和 jwt 实现。
这是我终端上的建议:
尝试npm i --save-dev @types/jsonwebtoken
如果它存在或添加一个包含`declare module 'jsonwebtoken'的新声明(.d.ts)文件;
我刚刚输入: npm i --save-dev @types/jsonwebtoken
然后在我的文件中添加了导入: import jwt from "jsonwebtoken"
希望有所帮助。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.