The difference between node.js and express.js in the level of abstraction:
-> Express.js is a framework based on node.js for building web-application using principles and approaches of node.js
Joyent owned, governed, and supported the Node.js development effort for many years. Since 2015, the Node.js project has belonged to the Node.js Foundation, governed by the foundation’s technical steering committee. Node.js has also been embraced as a Linux Foundation Collaborative Project.
Express is a framework of Node.js that allows you to use several very useful and powerful features without having to reinvent the wheel, helps you organize your application’s routing and use any templating solution with minimal effort. It also allows for much better organization of your code. In my personal opinion, Express.js is the best Node.js framework but Meteor.js, Derby.js, Sails.js and Flatiron.js are some of the best alternatives. Especially Meteor which is more of a full stack framework is superb and can do quite impressive things with minimal effort.
Express.js is one of the backend components of the MEAN stack. It was released in 2010 and was sold to Node.js becoming its the most popular framework 4 years later. It builds on top of the base language to provide developers with a rich set of features commonly used in web and mobile applications. It is the de facto framework for Node.js, meaning in practice, most of the developers who use Node.js for backend development also use the Express.js framework.