如何修复(节点:12388)\[DEP0066\] DeprecationWarning:OutgoingMessage.prototype._headers 在 Windows 中已弃用

新手上路,请多包涵

我是节点新手。我已经安装了nosejs 版本v12.4.0、npm 6.9.0、http-server 0.11.1 和visual studio 代码。我想用我的http-server 打开我的hello word 项目,它在Visual Studio 中代码。但我收到以下错误

错误

[2019-06-21T05:20:18.280Z] “GET /” “Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/64.0.3282.140 Safari/537.36 Edge/18.17763” (节点:11596)[DEP0066] DeprecationWarning:OutgoingMessage.prototype._headers 已弃用

我尝试了 npm install node-gyp 来修复标头问题,但没有成功。

我也尝试使用不同的浏览器,例如。 chrome,firefox,探索但没有成功。

     <!DOCTYPE html>
    <html>
    <head>
    </head>
    <body>
        <h1> Hello Word </h1>
    </body>
    </html>

我希望在任何浏览器中都能看到“Hello Word”。我使用的是 Windows 10。请协助

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

阅读 3.2k
2 个回答

那些在 FreeCodeCamp 练习中遇到这个问题的人,问题在 server.js 文件中。解决方案是将 ._headers 替换为 .getHeaders() ,因为错误告诉我们 ._headers 已被弃用。例如在 server.js 中,而不是 -

 // filter out CORS Headers
var hs = Object.keys(res._headers)
  .filter(h => !h.match(/^access-control-\w+/));
var hObj = {};
hs.forEach(h => {hObj[h] = res._headers[h]});
delete res._headers['strict-transport-security'];

使用以下 -

 // filter out CORS Headers
var hs = Object.keys(res.getHeaders())
  .filter(h => !h.match(/^access-control-\w+/));
var hObj = {};
hs.forEach(h => {hObj[h] = res.getHeaders()[h]});
delete res.getHeaders()['strict-transport-security'];

摘要:将所有 ._headers 替换为 .getHeaders()

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

推荐问题