A design pattern for the ages. Model-View-Control takes the 'separation of concerns' ideology you are already familiar with in JavaScript, and applies it app wide.
Views are simply a visual representation of a model's (database's) current state.
The user can input data using the http request, which gets passed to the controller who then decides what view to render for the browser, along with any appropriate data if needed.
"This handles user interaction by interpreting mouse clicks and keyboard inputs the user does, informing model and view to change appropriately."
Mongoose is a library for MongoDB and Node.js. It manages relationships between data, provides schema validation, and is used to translate between objects in code and the representation of those objects in MongoDB.
Mongoose allows us to make an object looking data structure that we export and use in our application. It allows for easy connection to our database.