弃用警告:当我将脚本移动到另一台服务器时,由于安全性和可用性问题,不推荐使用 Buffer()

新手上路,请多包涵

脚本移动到其他服务器时出错。

(节点:15707)[DEP0005] DeprecationWarning:由于安全性和可用性问题,不推荐使用 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();
        }
    });

 }

原文由 Devendra Chauhan 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 970
2 个回答
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


请注意,当前 Node.js 版本上的 Buffer.alloc() 也比 new Buffer(size).fill(0) 更快,否则您需要确保零填充。

原文由 Nebojsa Sapic 发布,翻译遵循 CC BY-SA 4.0 许可协议

使用已弃用的 new Buffer() 构造函数(即 Yarn 使用的 iE)会导致弃用警告。因此,不应使用已弃用/不安全的 Buffer 构造函数。

根据弃用警告 new Buffer() 应替换为以下之一:

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

为了避免这个问题,另一种选择是改用安全缓冲包。

您也可以尝试(使用纱线时..):

 yarn global add yarn

如此处所述: 链接

评论中的另一个建议(thx to gkiely): 自我更新

注意:自我更新不可用。查看在项目中强制执行版本的 策略

为了更新你的 Yarn 版本,运行

curl --compressed -o- -L https://yarnpkg.com/install.sh | bash

原文由 iLuvLogix 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
logo
Stack Overflow 翻译
子站问答
访问
宣传栏