maxcc00
maxcc00

Reputation: 345

express.static handling root url request

express.static is handling the root url request. e.g. I want to do a redirect in express from https://example.com to https://example.com/dashboard. Check the cases below, first one works, second does not. I expect the second to work too. Anyone knows why?

Case 1 (works)

app.get('/', (req, res, next) => {
   res.redirect('/dashboard');
})    

app.use(express.static(path.join(__dirname, 'dist')))

app.get('/dashboard', (req, res, next) => {
   //do stuff
}) 

Case 2 (does not work for me)

app.use(express.static(path.join(__dirname, 'dist')))

//request doesn't come here 
app.get('/', (req, res, next) => {   
   res.redirect('/dashboard')
})

app.get('/dashboard', (req, res, next) => {
  //do some stuff
}) 

Upvotes: 6

Views: 3579

Answers (1)

robertklep
robertklep

Reputation: 203419

That would happen if there's a file dist/index.html, because that's what express.static() would look for when retrieving a directory (in this case /).

You can turn that behaviour off like this:

app.use(express.static(path.join(__dirname, 'dist'), { index : false }))

Documented here: http://expressjs.com/en/4x/api.html#express.static

Upvotes: 8

Related Questions