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

Gab*_*ath 18 windows http-headers node.js

我是节点的新手。我已经安装了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 Chrome/64.0.3282.140 Safari/51637"140 (节点:11596)[DEP0066] 弃用警告:不推荐使用 OutgoingMessage.prototype._headers

我尝试npm install node-gyp来解决标题问题,但没有成功。

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

    <!DOCTYPE html>
    <html>
    <head>
    </head>
    <body>
        <h1> Hello Word </h1>
    </body>
    </html>
Run Code Online (Sandbox Code Playgroud)

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

小智 15

节点版本 12 弃用了 http-server 中使用的 OutgoingMessage.prototype._headers。问题列在:https : //github.com/http-party/http-server/issues/537

https://nodejs.org/api/deprecations.html#deprecations_dep0066_outgoingmessage_prototype_headers_outgoingmessage_prototype_headernames

使用节点 12.0.0 我使用 http-server 得到同样的错误。切换到 10.11.0 会消除错误。

  • 供将来参考...以链接为例,不要使用 obj._headers,而是使用 obj.getHeaders() 来获取 headers 对象。因此,将属性名称“._headers”替换为函数“.getHeaders()”。使用任一方法都会得到相同的结果,但使用该函数是受支持的方法并删除了弃用警告。 (5认同)

Meh*_*edi 9

那些在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'];
Run Code Online (Sandbox Code Playgroud)

使用以下 -

// 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'];
Run Code Online (Sandbox Code Playgroud)

总结:全部替换._headers.getHeaders().


小智 6

我在浏览器同步方面遇到了一些问题。当我开始项目时,我每次都会收到来自节点的警告( [DEP0066] DeprecationWarning: OutgoingMessage.prototype._headers is deprecated )。但是当我将浏览器同步依赖项更新为“browser-sync”:“^2.26.13”时,我的项目在没有任何警告的情况下启动了。