服务'静态'带有重定向和中间件的快速路由

时间:2015-01-01 20:01:53

标签: node.js express

我正在使用快递4.0提供静态网址:

app.use(' / static-route',express.static(' ./ static'));

这很有效。

但是,我想将用户重定向到带有查询参数的网址,如果他们点击该路由。

ie / static-route - > /静态路由?someQueryParam =你好

我还希望为该静态请求包含中间件。作为一个具体的例子,我使用护照,并希望确保用户登录以访问该静态内容。

2 个答案:

答案 0 :(得分:1)

app.use(和app.get等...)不带两个参数,第一个参数是路由(可选用),其余的都是中间件。

app.use('/static-route', function (req, res, next) {
  // validation
  // redirect
  // etc . . .
  next();
}, express.static('./static'));

答案 1 :(得分:0)

  • 将全局通配符路由[app.use('/')]用于静态内容和
  • 使用特定的路由[app.get(/ myroute),app.post('/ anotherroute')]使用自定义逻辑进行动态处理
//Serves resources from public folder 
app.use('/',express.static(__dirname + '/public')); 

//Verify the complete directory path - especially slashes 
console.log('Static directory '+__dirname + '/public');

app.get('/list', function (req, res) {
    res.send('<html><body><h1>Hello World</h1></body></html>'); });