DeprecationWarning: функция Buffer () устарела из-за проблем с безопасностью и удобством использования при переносе сценария на другой сервер - PullRequest
0 голосов
/ 04 сентября 2018

Получение ошибки при переносе скрипта на другой сервер.

(узел: 15707) [DEP0005] Предупреждение об устаревании: Буфер () устарел из-за проблем безопасности и удобства использования. Пожалуйста, используйте взамен методы 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();
        }
    });

 }

Ответы [ 2 ]

0 голосов
/ 10 сентября 2018
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), что в противном случае вам необходимо было бы обеспечить нулевой начинка.

0 голосов
/ 04 сентября 2018

Использование устаревшего конструктора new Buffer() (то есть используемого Yarn) может вызвать предупреждения об устаревании. Следовательно, НЕ следует использовать устаревший / небезопасный конструктор Buffer.

В соответствии с предупреждением об устаревании new Buffer() следует заменить одним из:

  • Buffer.alloc()
  • Buffer.allocUnsafe() или
  • Buffer.from()

Другой способ избежать этой проблемы - использовать вместо него пакет safe-buffer.

Вы также можете попробовать (при использовании пряжи ..):

yarn global add yarn

как упомянуто здесь: Ссылка

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...