Express.js重定向循环 - 仅限生产

时间:2017-12-28 11:57:42

标签: javascript node.js express redirect-loop

我正在运行一个带有独立API和Front的应用程序,两者都在Express.js上运行。

我已经在API上创建了一个重定向来重定向' /'并且缺少前端URL的路由。 但是,所有内容都适用于开发人员,我得到一个重定向循环 - 生产时出现ERR_TOO_MANY_REDIRECTS错误。 生产正在 https ,因此我不确定这是否可能是问题,我正在使用Helmet包进行安全性

尝试创建2个解决方案并通过SO搜索,但都没有工作:

-----#1 - app.js -----

// catch 404 and forward to error handler
app.use(function(req, res, next) {
  var err = new Error('Not Found');
  err.status = 404;
  next(err);
});

// error handler
app.use(function(err, req, res, next) {
  // set locals, only providing error in development
  res.locals.message = err.message;
  res.locals.error = req.app.get('env') === 'development' ? err : {};

  //log error   
  logging.error(err);
  res.status(err.status || 500);

  // frontUrl is http://xx.com for dev, and https://xy.com for production
  res.redirect(frontUrl);
});

module.exports = app;

-----#2 - app.js -----

// error handler
app.use(function(err, req, res, next) {
  // set locals, only providing error in development
  res.locals.message = err.message;
  res.locals.error = req.app.get('env') === 'development' ? err : {};

  //log error   
  logging.error(err);
  res.status(err.status || 500);

res.redirect('/');
});

module.exports = app;

----- /routes/index.js -----

var frontUrl = require('../config.json').FrontURL;

router.get('/', function(req, res, next) {
    res.redirect(frontUrl);
});

0 个答案:

没有答案