我正在运行一个带有独立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);
});