如何在Node.js中全局禁用缓冲区警告

时间:2019-07-02 13:16:05

标签: express buffer warnings global

我正在使用mssql@3.3.0和Node.js运行Express API。

使用了mssql的旧版本来解决我们遇到的其他兼容性问题。

但是,当尝试使用Promise将请求链接在一起时,出现以下错误:

  

DeprecationWarning:由于安全性和可用性问题,不建议使用Buffer()。请改用Buffer.alloc(),Buffer.allocUnsafe()或Buffer.from()方法。

如何禁用此警告并使用IISNode / Express在“不安全”模式下运行代码?

1 个答案:

答案 0 :(得分:1)

我遇到了同样的问题,这是我解决的方法。

首先,根据this question的建议,我将以下代码添加到我的 web.config 文件中(作为 system.webServer 的子代):< / p>

<iisnode nodeProcessCommandLine='"C:\Program Files\nodejs\node.exe" --no-warnings' />

这样做是为了避免将所有警告发送给 stderr 。 我只想禁止Buffer()弃用警告。

This article解释说,即使使用了 no-warnings 标志,“ Node.js进程对象也将发出 warning 事件”。因此,然后将以下代码添加到我的 server.js 文件中:

process.on('warning', (warning) => {
    if (!warning.message.includes("Buffer() is deprecated")) {
        console.error(warning);
    }
});

现在,只有Buffer()弃用警告被忽略。