web-dev-qa-db-fra.com

DeprecationWarning: Buffer () est obsolète en raison de problèmes de sécurité et de facilité d'utilisation lorsque je déplace mon script sur un autre serveur.

Obtenir une erreur lorsque le script passe sur un autre serveur.

(node: 15707) [DEP0005] DeprecationWarning: Buffer () est obsolète en raison de problèmes de sécurité et de facilité d'utilisation. Utilisez plutôt les méthodes Buffer.alloc (), Buffer.allocUnsafe () ou Buffer.from ().

Versions actuelles:

Ubuntu 16.04.4 LTS  
Node - v10.9.0  
NPM - 6.2.0  

La version précédente:

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();
        }
    });

 }
56
Devendra Chauhan
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

Remarque que Buffer.alloc () est également plus rapide sur le Node.js actuel. versions que le nouveau Buffer (size) .fill (0), qui est ce dont vous auriez autrement besoin pour assurer le remplissage à zéro.

134
Nebojsa Sapic

L'utilisation du constructeur obsolète new Buffer() (par exemple, tel qu'utilisé par Yarn) peut provoquer des avertissements de dépréciation. Par conséquent, il ne faut PAS utiliser le constructeur obsolète/insalubre.

Selon l'avertissement de désapprobation, new Buffer() doit être remplacé par l'un des suivants:

  • Buffer.alloc()
  • Buffer.allocUnsafe() ou
  • Buffer.from()

Une autre option pour éviter ce problème serait d'utiliser plutôt le paquetage safe-buffer.

Vous pouvez aussi essayer (en utilisant du fil ..):

yarn global add yarn

comme mentionné ici: Lien

13
iLuvLogix