我正在制作一个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',
},
)
}
}
答案 0 :(得分:1)
您将需要导入它,然后像这样分配它
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);
答案 1 :(得分:1)
您能尝试一下吗?
npm init
app.js
npm i jsonwebtoken
package.json
并添加"type": "module"
app.js
中输入以下内容:import jwt from "jsonwebtoken"
node --experimental-modules app.js
如果遇到错误,请告诉我