[英]Cannot find module 'jsonwebtoken' Node.js
我正在嘗試使用 node.js 設置用戶級身份驗證,所以我去執行 npm install -g jsonwebtoken --save。 但是,當我使用 require('jsonwebtoken'); 時遇到問題並嘗試編譯我的代碼,它給了我上面標題中描述的錯誤。 現在,出於某種原因,當我卸載 JWT 並嘗試在沒有它的情況下運行我的代碼時,它會編譯,但顯然它不起作用。 我嘗試重新安裝它,仍然沒有成功。 我的 npm --version 6.3.0
節點——版本 v11.1.0
npm install -g jsonwebtoken --save + jsonwebtoken@8.4.0
代碼:
'use strict';
require('jsonwebtoken');
exports.generateToken = async (data) => {
return jwt.sign(data, global.SALT_KEY, { expiresIn: '1d' });
}
exports.decodeToken = async (token) => {
var data = await jwt.verify(token, global.SALT_KEY);
return data;
}
exports.authorize = function (req, res, next) {
var token = req.body.token || req.query.token || req.headers['x-access-token'];
if (!token) {
res.status(401).json({
message: 'Acesso Restrito'
});
} else {
jwt.verify(token, global.SALT_KEY, function (error, decoded) {
if (error) {
res.status(401).json({
message: 'Token Inválido'
});
} else {
next();
}
});
}
};
exports.isAdmin = function (req, res, next) {
var token = req.body.token || req.query.token || req.headers['x-access-token'];
if (!token) {
res.status(401).json({
message: 'Token Inválido'
});
} else {
jwt.verify(token, global.SALT_KEY, function (error, decoded) {
if (error) {
res.status(401).json({
message: 'Token Inválido'
});
} else {
if (decoded.roles.includes('admin')) {
next();
} else {
res.status(403).json({
message: 'Esta funcionalidade é restrita para administradores'
});
}
}
});
}
};
不要使用-g
標簽將其全局安裝,只需將其本地安裝在當前工作目錄中即可。 做就是了:
npm install jsonwebtoken --save
這是因為您不能在代碼中直接require
全局安裝的包。
npm install jsonwebtoken
您正在安裝它的系統級 node_modules 文件夾。 因此它在項目級 node_modules 文件夾中不可用。 請從 npm install 命令中刪除 -g
npm install -- -- 保存jsonwebtoken
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.