Javascript 快速发送文件和重定向url

Javascript 快速发送文件和重定向url,javascript,node.js,url,express,Javascript,Node.js,Url,Express,我有一堆中间件。在第一个应用程序中。使用我测试进程是否处于胁迫状态,如果是,我希望它只发送静态/index.html文件,并将用户浏览器重定向到“/#”+req.url 例如: app.set("port", PORT) //etc app.use(function(req, res, next) { if (something) res.sendfile('/public/index.html', { root: __dirname + '/..' }) // also,

我有一堆中间件。在第一个
应用程序中。使用
我测试进程是否处于胁迫状态,如果是,我希望它只发送静态
/index.html
文件,并将用户浏览器重定向到
“/#”+req.url

例如:

app.set("port", PORT)
//etc
app.use(function(req, res, next) {
  if (something)
    res.sendfile('/public/index.html', { root: __dirname + '/..' })
    // also, redirect the user to '/#' + req.url
  else
    next()
});
// a ton more middleware that deals with the main site
app.use(express.static(...))

现在,它只是将index.html发送到他们所在的任何url。如何将它们重定向到“/”并提供index.html,而不破坏任何未来的中间件。

不确定我是否理解正确,但请尝试以下方法:

app.use(function(req, res, next) {
  if (something && req.path !== '/')
    return res.redirect('/');
  next();
});

app.get('/', function(req, res, next) {
  if (something)
    return res.sendfile('/public/index.html', { root: __dirname + '/..' });
  next();
});

app.use(express.static(...));

你当然可以打电话给我,但我有一种感觉,那不是你要找的。静态文件在应用程序中间件之后才会装载,因此重定向到“/”不会返回任何内容。