Is a View Engine necessary for Express/Node?
No, it is not required. Express can happily serve static HTML5 files as you wish. You don't need a view engine for that. You can either create custom routes and use res.sendFile()
for each page or you can use express.static()
to automatically serve a whole directory of static HTML files or you can write your own code to construct whatever HTML5 content you want to send and use res.send()
to send it.
Where a view engine is required is if you want a template-type of system where you can create an HTML template with placeholders for dynamic content and then have dynamic values inserted into the page on the server.
Can I not pass values to a normal .html file within express?
No, you can't do that with regular express. Express has facilities for serving static HTML files, but not for inserting dynamic content into an HTML file. That's what you use a view engine for. Express did not build that capability in itself because there are dozens of different view engine philosophies and Express didn't want to mandate one style so instead it supports a view engine interface for rendering from a template and you can select which view engine you want to use.