Why & how Express uses MVC pattern?

Can someone explain how Express can be used to structure code that follows the Model-View-Controller (MVC) design pattern?

// Express app
var express = require('express');
var app = express();
To structure code that follows the Model-View-Controller (MVC) design pattern using Express, you can do the following:

1. Create a "models" folder and define your models (representing data) in separate files.
2. Create a "views" folder and define your views (representing the UI) in separate files.
3. Create a "controllers" folder and define your controllers (handling user input and interaction) in separate files.
4. In your main app.js file, require the necessary modules and files, and set up your routes using app.get(), app.post(), etc.
5. In your routes, call the appropriate controller function to handle the request, and pass any necessary data to the view for rendering.
6. In your controller function, interact with the appropriate model functions to retrieve or manipulate data as needed.
7. Finally, render the appropriate view with the necessary data using res.render().

Here is an example of setting up an Express app:

// Require necessary modules and files
var express = require('express');
var app = express();
var userController = require('./controllers/userController');

// Set up routes
app.get('/', userController.index);
app.get('/users', userController.list);
app.post('/users', userController.create);

// Example controller functions
var userModels = require('../models/user');

function index(req, res) {
  res.render('index');
}

function list(req, res) {
  var users = userModels.getAllUsers();
  res.render('userList', {users: users});
}

function create(req, res) {
  var newUser = req.body;
  userModels.addUser(newUser);
  res.redirect('/users');
}

// Export app for use elsewhere
module.exports = app;