Is this the correct way to create a route to a specific .hbs file? This is my /forums page
&lt;div class=&quot;card-body&quot;&gt;
  &lt;h5 class=&quot;card-title&quot;&gt;2019/2020 Premier League Forum&lt;/h5&gt;
  &lt;a href=&quot;/Leagues/EnglishDivision/PremierLeague&quot; class=&quot;btn btn-primary&quot;&gt;View&lt;/a&gt;
&lt;/div&gt;

For the above code you can see the href pointing to a directory to premierLeague.hbs.
This is how my file structure looks.
├── app.js
├── views/
│   ├── index.hbs
│   ├── forums.hbs
│   ├── login.hbs
│   ├── Leagues/
│       ├── EnglishDivision/
│           ├── PremierLeague.hbs
│   
├── routes/
│   ├── Pages.js

This is my app.js
// Public dir
var publicDir = path.join(__dirname, './public');
app.use(express.static(publicDir));

// Define routes
app.use('/', require('./routes/pages'));

This is my pages.js
// Forum
router.get('/forums', authController.isLoggedIn, function(req, res) {
  if(req.user) {
    res.render('forums');
  } else {
    res.redirect('login');
  }
});

// English Division //

// Premier League
router.get('/Leagues/EnglishDivision/PremierLeague', authController.isLoggedIn, function(req, res) {
  if(req.user) {
    res.render('./Leagues/EnglishDivision/PremierLeague');
  } else {
    res.redirect('login');
  }
});

Question:
In order for premier league html file to be accessed via the a tag from forums page, have I set the routing correctly?
Somewhere in your code you should be setting the template engine and the base views path, in the likes of
app.set('views', __dirname+'/views/');
app.set('view engine', 'hbs');

(I assume you have that figured out already)
Having said that, you can either reference a view by its location relative to the views setting, therefore:
res.render('Leagues/EnglishDivision/PremierLeague');

(note there's no leading ./ in there)
OR, reference a view by its template file path (without extension). If you do this, the relative path is computed using the base path from which you start your app. Therefore, if your structure looked like:
  /var/www/project
  │   
  ├─ packjage.json
  └─ src/
       │   
       ├── app.js
       ├── views/
       │   └─── index.hbs
       │   └─── Leagues/
       │       └─── EnglishDivision/
       │           └─── PremierLeague.hbs
       │   
       └─── routes/
          └── Pages.js

Moving to /var/www/project and executing node src/app.js means
res.render('./Leagues/EnglishDivision/PremierLeague');

Will look for a template at /var/www/project/Leagues/EnglishDivision/PremierLeague.hbs
Whereas moving to /var/www/project/src and executing node app.js would instead look for /var/www/project/src/Leagues/EnglishDivision/PremierLeague.hbs
If you need to reference the template by its filepath, you should use the absolute path. For example,  __dirname always holds the current folder, regardless of where were you when executing the start script. Which means__dirname called from Pages.js is /var/www/project/src/routes, and therefore
res.render(__dirname+'/../views/Leagues/EnglishDivision/PremierLeague');

Would point to the intended file.