我是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。请协助
答案 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可以消除错误。