3

我正在将我的 nodejs 版本从 8 升级到 10。升级后,我现在无法在任何浏览器中运行我的应用程序。所以我用谷歌搜索了我的问题,发现节点 10 的标头大小已从 80kb 缩小到 8kb。我的应用程序标头大小超过 8kb。所以我需要用 nodejs 命令设置它--max-http-header-size=80000。但我不知道如何使用nodemonand进行设置babel-node。请帮忙。

这是我的 nodemon.json

{
  "ext": "js jsx ejs json gql css",
  "exec": "babel-node"
}

这是我当前的 package.json:

"develop:server": "BABEL_ENV=server nodemon .",

我已经尝试过的解决方案:

{
  "ext": "js jsx ejs json gql css",
  "exec": "node --max-http-header-size=80000 ./node_modules/babel-cli/bin/babel-node.js"
}

正确的解决方案如下(选择其中之一):

  1. {
      "ext": "js jsx ejs json gql css",
      "exec": "NODE_OPTIONS=--max-http-header-size=80000 babel-node"
    }
    
  2. "develop:server": "NODE_OPTIONS=--max-http-header-size=80000 BABEL_ENV=server nodemon .",

4

1 回答 1

6

我认为节点工程师减少了http-header-sizefrom version 8.16.0. 他们减少了它以防止诸如此类的攻击DDOS。当我从节点升级时,我遇到了同样的问题version 8.9.1 to 8.16.0。我是如何解决问题的package.json,我添加了--max-http-header-size=80000 flag in start script例如

"scripts": {"start": "node --max-http-header-size=80000 server.js"}

它奏效了。但是如果您的标头超过 8kb,那么您必须返回到以前的版本,直到出现正确的修复程序。

于 2019-08-29T08:20:26.183 回答