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