如何解决(节点:12388)[DEP0066]弃用警告:Windows中弃用了OutgoingMessage.prototype._headers

时间:2019-06-21 05:30:15

标签: node.js windows http-headers

我是node的新手。我已经安装了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]弃用警告:已弃用OutgoingMessage.prototype._headers

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

我也尝试使用其他浏览器,例如。 chrome,firefox,但没有成功。

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

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

4 个答案:

答案 0 :(得分:1)

浏览器同步出现问题。当我开始项目时,每次都会收到来自节点的警告( [DEP0066] DeprecationWarning:不推荐使用OutgoingMessage.prototype._headers )。但是,当我将浏览器索引依赖项更新为“浏览器同步”:“ ^ 2.26.13” 时,我的项目开始运行而没有任何警告。

答案 1 :(得分:1)

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()

答案 2 :(得分:1)

对于那些每次开始他们的项目时都得到它的人来说, 运行:npm i browser-sync

答案 3 :(得分:0)

节点版本12取消了OutgoingMessage.prototype._headers,该文件在http服务器中使用。问题在以下位置列出: https://jsfiddle.net/yojz8sb3/

https://github.com/http-party/http-server/issues/537

使用节点12.0.0,我使用http服务器收到相同的错误。切换到10.11.0可以消除错误。