TypeError:当我使用nginx反向代理

时间:2018-04-08 23:13:25

标签: express nginx pm2

在我的服务器上,我有nginx和pm2并排运行。

为了完成这项工作,我将我的nginx配置为反向代理到我的API(PM2)

# Proxying API connections to api
location /api/ {
    proxy_pass http://localhost:3000/api;
    proxy_http_version 1.1;
    proxy_set_header Host $http_host;
    proxy_set_header X-NginX-Proxy true;
    proxy_set_header X-Forwarded-Proto https;
    proxy_set_header Upgrade $http_upgrade;
    proxy_set_header Connection 'upgrade';
    proxy_set_header Host $host;
    proxy_max_temp_file_size 0;
    proxy_cache_bypass $http_upgrade;
    proxy_read_timeout 240s;
}

但是当我的UI调用我的API时,我收到此错误..

  

api> TypeError:res.end不是函数
      api>在onError(/var/www/api/source/api/api.js:75:9)
      api>在Layer.handle [as handle_request](/var/www/api/source/node_modules/express/lib/router/layer.js:95:5)
      api>在trim_prefix(/var/www/api/source/node_modules/express/lib/router/index.js:317:13)

当我在第75行检查我的代码时......

app.use(function onError (err, req, res) {
  res.statusCode = 500
  res.end(res.sentry + '\n') // Line 75
})

我做错了什么?

1 个答案:

答案 0 :(得分:0)

错误中间件应该有4个参数,按此顺序:

app.use(function onError(req, res, next, err){
    //handle error
})

https://expressjs.com/en/guide/error-handling.html