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

时间:2019-07-16 18:44:45

标签: angular angular-universal

我有一个角度项目,最近我使用以下命令向其中添加了角度通用:

ng add @nguniversal/express-engine --clientProject {{ name of your project }}

构建并运行它:

npm run build:ssr && npm run serve:ssr

这样做之后出现了很多错误,但是我设法使其正常工作,但是当我访问主页时,将以下内容写入控制台:

(node:44714) [DEP0005] DeprecationWarning: Buffer() is deprecated due to security and usability issues. Please use the Buffer.alloc(), Buffer.allocUnsafe(), or Buffer.from() methods instead.
ERROR [Error]
ERROR [Error]

,并且每次刷新页面时,它都会再次打印ERROR [Error]而没有任何详细信息,请注意,我的代码中没有new Buffer(),并且我遵循了有关堆栈溢出的建议,解决这个问题但没有运气,有人可以帮忙弄清楚是什么原因吗?


我已经通过删除TranslateService解决了ERROR [Error],但仍然存在deprecationWarning

2 个答案:

答案 0 :(得分:2)

我收到同样的警告,它似乎丝毫不影响任何东西。 我做了查找和替换,但是猜猜是什么,我的代码(无论在源代码中还是在编译的包中)都没有与Buffer()匹配的东西,所以我对此很好奇。 我拥有节点的最新LTS版本(12.14.1),但我已将npm升级到6.13.6 我还要说的是,如果将客户端版本部署到我的生产或开发服务器上,则不会生成该输出,它只会在通过iisnode提供SSR版本时发生,我不知道这是否有帮助。

答案 1 :(得分:0)

如果您在代码中使用Buffer(),只需将其替换为:

new Buffer(number) // Deprecated 
Buffer.alloc(number) // New

new Buffer(string) // Deprecated 
Buffer.from(string) // New

如果您在任何地方使用Buffer(),则必须执行以下操作:

1)搜索所有应用程序依赖项(您可以使用一种搜索工具,方法是单击您当前使用的IDE中的搜索图标,然后键入Buffer()

2)只要您在模块或依赖项中找到Buffer()的地方,就如上所述将其替换