不使用模板时 res.redirect 不起作用

问题描述

我正在使用带有 --no-view 标志的 express 生成器制作一个项目,当我尝试将响应重定向到网站时(例如:www.google.com)它没有工作(下面的代码) :

router.get('/',function(req,res,next) {
res.redirect('https://www.google.com')
});

上面的代码实际上呈现了 index.html(认),所以这次我尝试使用像 pug 这样的模板引擎来重现同样的问题,但这次重定向有效。

我的问题是为什么在不使用模板引擎时 / 路由总是呈现 index.html,无论我在里面放什么代码

解决方法

index.html 文件由以下行提供,因为项目是在没有视图的情况下创建的(因此,app.js 不会有与设置视图引擎相关的代码)。

app.use(express.static(path.join(__dirname,"public")));

根据 documentation,默认情况下将直接提供指定的 index 文件。您可以通过将 index 设置为 false 来禁用它,如下所示。

app.use(express.static(path.join(__dirname,"public"),{ index: false }));