DeprecationWarning: Buffer() устарел из-за проблем с безопасностью и удобством использования, когда я переношу свой сценарий на другой сервер
Ошибка при переходе сценария на другой сервер.
(node: 15707) [DEP0005] Устаревание Предупреждение: Buffer() устарел из-за проблем с безопасностью и юзабилити. Вместо этого используйте методы Buffer.alloc(), Buffer.allocUnsafe() или Buffer.from().
Текущие версии:
Ubuntu 16.04.4 LTS
Node - v10.9.0
NPM - 6.2.0
Предыдущая версия:
Ubuntu 14.04.3 LTS
NPM - 3.10.10
Node - v6.10.3
exports.basicAuthentication = function (req, res, next) {
console.log("basicAuthentication");
if (!req.headers.authorization) {
return res.status(401).send({
message: "Unauthorised access"
});
}
var auth = req.headers.authorization;
var baseAuth = auth.replace("Basic", "");
baseAuth = baseAuth.trim();
var userPasswordString = new Buffer(baseAuth, 'base64').toString('ascii');
var credentials = userPasswordString.split(':');
var username = credentials[0] !== undefined ? credentials[0] : '';
var password = credentials[1] !== undefined ? credentials[1] : '';
var userQuery = {mobilenumber: username, otp: password};
console.log(userQuery);
User.findOne(userQuery).exec(function (err, userinfo) {
if (err || !userinfo) {
return res.status(401).send({
message: "Unauthorised access"
});
} else {
req.user = userinfo;
next();
}
});
}
Ответы
Ответ 1
new Buffer(number) // Old
Buffer.alloc(number) // New
new Buffer(string) // Old
Buffer.from(string) // New
new Buffer(string, encoding) // Old
Buffer.from(string, encoding) // New
new Buffer(...arguments) // Old
Buffer.from(...arguments) // New
Обратите внимание, что Buffer.alloc() также быстрее работает с текущими версиями Node.js, чем новый Buffer (size).fill(0), что вам в противном случае понадобилось бы для нулевого заполнения.
Ответ 2
Использование устаревшего new Buffer()
(т.е. используемого Yarn) может вызвать предупреждения об устаревании. Следовательно, НЕ следует использовать устаревший/небезопасный конструктор Buffer.
В соответствии с предупреждением об устаревании new Buffer()
должен быть заменен одним из:
-
Buffer.alloc()
-
Buffer.allocUnsafe()
или -
Buffer.from()
Другой способ избежать этой проблемы - использовать пакет safe-buffer вместо этого.
Вы также можете попробовать:
yarn global add yarn
как уже упоминалось здесь: ссылка