Get Advice Icon

Need advice about which tool to choose?Ask the StackShare community!

ExpressJS
ExpressJS

5.9K
4.3K
+ 1
1.3K
Node.js
Node.js

29.1K
23.1K
+ 1
7.9K
Add tool

ExpressJS vs Node.js: What are the differences?

Developers describe ExpressJS as "Sinatra inspired web development framework for node.js -- insanely fast, flexible, and simple". Express is a minimal and flexible node.js web application framework, providing a robust set of features for building single and multi-page, and hybrid web applications. On the other hand, Node.js is detailed as "A platform built on Chrome's JavaScript runtime for easily building fast, scalable network applications". Node.js uses an event-driven, non-blocking I/O model that makes it lightweight and efficient, perfect for data-intensive real-time applications that run across distributed devices.

ExpressJS belongs to "Microframeworks (Backend)" category of the tech stack, while Node.js can be primarily classified under "Frameworks (Full Stack)".

"Simple", "Node.js" and "Javascript" are the key factors why developers consider ExpressJS; whereas "Npm", "Javascript" and "Great libraries" are the primary reasons why Node.js is favored.

ExpressJS and Node.js are both open source tools. ExpressJS with 44.6K GitHub stars and 7.48K forks on GitHub appears to be more popular than Node.js with 35.5K GitHub stars and 7.78K GitHub forks.

According to the StackShare community, Node.js has a broader approval, being mentioned in 4104 company stacks & 4042 developers stacks; compared to ExpressJS, which is listed in 854 company stacks and 790 developer stacks.

What is ExpressJS?

Express is a minimal and flexible node.js web application framework, providing a robust set of features for building single and multi-page, and hybrid web applications.

What is Node.js?

Node.js uses an event-driven, non-blocking I/O model that makes it lightweight and efficient, perfect for data-intensive real-time applications that run across distributed devices.
Get Advice Icon

Need advice about which tool to choose?Ask the StackShare community!

Why do developers choose ExpressJS?
Why do developers choose Node.js?

Sign up to add, upvote and see more prosMake informed product decisions

Sign up to add, upvote and see more consMake informed product decisions

Jobs that mention ExpressJS and Node.js as a desired skillset
What companies use ExpressJS?
What companies use Node.js?

Sign up to get full access to all the companiesMake informed product decisions

What tools integrate with ExpressJS?
What tools integrate with Node.js?

Sign up to get full access to all the tool integrationsMake informed product decisions

What are some alternatives to ExpressJS and Node.js?
Koa
Koa aims to be a smaller, more expressive, and more robust foundation for web applications and APIs. Through leveraging generators Koa allows you to ditch callbacks and greatly increase error-handling. Koa does not bundle any middleware.
React
Lots of people use React as the V in MVC. Since React makes no assumptions about the rest of your technology stack, it's easy to try it out on a small feature in an existing project.
Flask
Flask is intended for getting started very quickly and was developed with best intentions in mind.
Django
Django is a high-level Python Web framework that encourages rapid development and clean, pragmatic design.
Go
Go is expressive, concise, clean, and efficient. Its concurrency mechanisms make it easy to write programs that get the most out of multicore and networked machines, while its novel type system enables flexible and modular program construction. Go compiles quickly to machine code yet has the convenience of garbage collection and the power of run-time reflection. It's a fast, statically typed, compiled language that feels like a dynamically typed, interpreted language.
See all alternatives
Decisions about ExpressJS and Node.js
Antonio Sanchez
Antonio Sanchez
CEO at Kokoen GmbH · | 11 upvotes · 72.8K views
atKokoen GmbHKokoen GmbH
ExpressJS
ExpressJS
Node.js
Node.js
JavaScript
JavaScript
MongoDB
MongoDB
Go
Go
MySQL
MySQL
Laravel
Laravel
PHP
PHP

Back at the start of 2017, we decided to create a web-based tool for the SEO OnPage analysis of our clients' websites. We had over 2.000 websites to analyze, so we had to perform thousands of requests to get every single page from those websites, process the information and save the big amounts of data somewhere.

Very soon we realized that the initial chosen script language and database, PHP, Laravel and MySQL, was not going to be able to cope efficiently with such a task.

By that time, we were doing some experiments for other projects with a language we had recently get to know, Go , so we decided to get a try and code the crawler using it. It was fantastic, we could process much more data with way less CPU power and in less time. By using the concurrency abilites that the language has to offers, we could also do more Http requests in less time.

Unfortunately, I have no comparison numbers to show about the performance differences between Go and PHP since the difference was so clear from the beginning and that we didn't feel the need to do further comparison tests nor document it. We just switched fully to Go.

There was still a problem: despite the big amount of Data we were generating, MySQL was performing very well, but as we were adding more and more features to the software and with those features more and more different type of data to save, it was a nightmare for the database architects to structure everything correctly on the database, so it was clear what we had to do next: switch to a NoSQL database. So we switched to MongoDB, and it was also fantastic: we were expending almost zero time in thinking how to structure the Database and the performance also seemed to be better, but again, I have no comparison numbers to show due to the lack of time.

We also decided to switch the website from PHP and Laravel to JavaScript and Node.js and ExpressJS since working with the JSON Data that we were saving now in the Database would be easier.

As of now, we don't only use the tool intern but we also opened it for everyone to use for free: https://tool-seo.com

See more
Antonio Kobashikawa
Antonio Kobashikawa
Web developer | Blogger | Freelancer at Rulo Kobashikawa · | 4 upvotes · 39.9K views
Koa
Koa
ES6
ES6
JavaScript
JavaScript
Ionic
Ionic
Vue.js
Vue.js
MongoDB
MongoDB
ExpressJS
ExpressJS
Node.js
Node.js

We are using Node.js and ExpressJS to build a REST services that is middleware of a legacy system. MongoDB as database. Vue.js helps us to make rapid UI to test use cases. Frontend is build for mobile with Ionic . We like using JavaScript and ES6 .

I think next step could be to use Koa but I am not sure.

See more
Jack Graves
Jack Graves
Head of Product Development at Automation Consultants · | 1 upvotes · 32 views
atAutomation ConsultantsAutomation Consultants
Amazon EC2 Container Service
Amazon EC2 Container Service
Docker
Docker
ExpressJS
ExpressJS
TypeScript
TypeScript
Node.js
Node.js

Node.js powers our Cloud App Servers and performs the server-side logic required to provide useful business operations like those in Approvals for Confluence. Our Node.js Apps are written in TypeScript and use the ExpressJS framework to serve requests, along with other libraries to manage data storage and security. In production these Node.js processes are run in Docker containers, split across multiple Cluster nodes using the Amazon EC2 Container Service.

See more
across_the_grid
across_the_grid
Full-stack web developer at Capmo GmbH · | 10 upvotes · 30.9K views
ExpressJS
ExpressJS
Node.js
Node.js
Socket.IO
Socket.IO

I use Socket.IO because the application has 2 frontend clients, which need to communicate in real-time. The backend-server handles the communication between these two clients via websockets. Socket.io is very easy to set up in Node.js and ExpressJS.

In the research project, the 1st client shows panoramic videos in a so called cave system (it is the VR setup of our research lab, which consists of three big screens, which are specially arranged, so the user experience the videos more immersive), the 2nd client controls the videos/locations of the 1st client.

See more
David Ritsema
David Ritsema
Frontend Architect at Herman Miller · | 7 upvotes · 17.4K views
atHerman MillerHerman Miller
prismic.io
prismic.io
Next.js
Next.js
React
React
Node.js
Node.js

When we started thinking about technology options for our own Design System, we wanted to focus on two primary goals

  1. Build a design system site using design system components - a living prototype
  2. Explore new ways of working to position our technical capabilities for the future

We have a small team of developers responsible for the initial build so we knew that we couldn’t spend too much time maintaining infrastructure on the Backend. We also wanted freedom to make decisions on the Frontend with the ability to adapt over time.

For this first iteration we decided to use Node.js, React, and Next.js. Content will be managed via headless CMS in prismic.io.

  1. Next.js so that we can run React serverside without worrying about server code.
  2. prismic.io so that our content is accessible via API and our frontend is fully independent.
See more
Python
Python
Django
Django
JavaScript
JavaScript
Node.js
Node.js

Django or NodeJS? Hi, I’m thinking about which software I should use for my web-app. What about Node.js or Django for the back-end? I want to create an online preparation course for the final school exams in my country. At the beginning for maths. The course should contain tutorials and a lot of exercises of different types. E.g. multiple choice, user text/number input and drawing tasks. The exercises should change (different levels) with the learning progress. Wrong questions should asked again with different numbers. I also want a score system and statistics. So far, I have got only limited web development skills. (some HTML, CSS, Bootstrap and Wordpress). I don’t know JavaScript or Python.

Possible pros for Python / Django: - easy syntax, easier to learn for me as a beginner - fast development, earlier release - libraries for mathematical and scientific computation

Possible pros for JavaScript / Node.js: - great performance, better choice for real time applications: user should get the answer for a question quickly

Which software would you use in my case? Are my arguments for Python/NodeJS right? Which kind of database would you use?

Thank you for your answer!

Node.js JavaScript Django Python

See more
Justin Dorfman
Justin Dorfman
Developer Evangelist at StackShare · | 3 upvotes · 19.3K views
atBootstrapCDNBootstrapCDN
Vim
Vim
Pug
Pug
ExpressJS
ExpressJS
Node.js
Node.js
Bootswatch
Bootswatch
Amazon S3
Amazon S3
#YAML

This is the third Stack Decision of this series. You can read the last one to catch up (link below).

Josh is a machine. He cranked out the rewrite of the site and as well as the Amazon S3 syncing/permissions/content-type scripts in less than a week (with a full time job + 2 small kids at the time). The new site had/has a section where you could try out all of the Bootswatch themes on our site and while it might sound silly, it showed me that he goes above and beyond and I totally lucked out.

Anyway, Josh decided to go with Node.js, ExpressJS, Jade (now called Pug), and configs with #yaml, all things I have read about but never used in production. I quickly found out Josh was a Vim user (still is), because every Jade file he worked on had //- vim: ft=jade sw=4 sts=4 et: at the bottom.

Everything was running smoothly, I was encouraged by David (co-founder from part 1) to take a vacation. I took him up on that. Unfortunately, my timing couldn’t have been worse. More on that in part 4.

AMA below 👇

See more
GitHub
GitHub
nginx
nginx
ESLint
ESLint
AVA
AVA
Semantic UI React
Semantic UI React
Redux
Redux
React
React
PostgreSQL
PostgreSQL
ExpressJS
ExpressJS
Node.js
Node.js
FeathersJS
FeathersJS
Heroku
Heroku
Amazon EC2
Amazon EC2
Kubernetes
Kubernetes
Jenkins
Jenkins
Docker Compose
Docker Compose
Docker
Docker
#Frontend
#Stack
#Backend
#Containers
#Containerized

Recently I have been working on an open source stack to help people consolidate their personal health data in a single database so that AI and analytics apps can be run against it to find personalized treatments. We chose to go with a #containerized approach leveraging Docker #containers with a local development environment setup with Docker Compose and nginx for container routing. For the production environment we chose to pull code from GitHub and build/push images using Jenkins and using Kubernetes to deploy to Amazon EC2.

We also implemented a dashboard app to handle user authentication/authorization, as well as a custom SSO server that runs on Heroku which allows experts to easily visit more than one instance without having to login repeatedly. The #Backend was implemented using my favorite #Stack which consists of FeathersJS on top of Node.js and ExpressJS with PostgreSQL as the main database. The #Frontend was implemented using React, Redux.js, Semantic UI React and the FeathersJS client. Though testing was light on this project, we chose to use AVA as well as ESLint to keep the codebase clean and consistent.

See more
Nicolas Theck
Nicolas Theck
Student at RocketPlay · | 3 upvotes · 20.2K views
atRocketPlayRocketPlay
HTML5
HTML5
Twilio SendGrid
Twilio SendGrid
Node.js
Node.js
OVH
OVH
PM2
PM2
JSON Web Token
JSON Web Token
PostgreSQL
PostgreSQL
Sequelize
Sequelize
ExpressJS
ExpressJS
CloudFlare
CloudFlare
nginx
nginx
npm
npm
Ubuntu
Ubuntu
GitLab CI
GitLab CI
GitLab
GitLab
Webpack
Webpack
Vue.js
Vue.js
JavaScript
JavaScript
#Ns
#Passport
#Pulsejs
#Backend
#Frontend

We use JavaScript in both our #Frontend and #Backend. Front-End wise, we're using tools like Vue.js , Webpack (for dev & building), pulsejs . For delivering the content, we push to GitLab & use GitLab CI (running on our own Ubuntu machine) to install (with npm) our packages, build the app trough Webpack and finally push it to our nginx server via a folder. From there, use accessing the website will get cached content thanks to CloudFlare. Back-End wise, we again use JavaScript with tools such as ExpressJS (http server), Sequelize (database, server running on PostgreSQL ) but also JSON Web Token with passport to authenticate our users. Same process used in front-end is used for back-end, we just copy files to a dist where PM2 watches for any change made to the Node.js app. Traffic doesn't go trough CloudFlare for upload process reasons but our nginx reverse proxy handles the request (which do go trough CloudFlare SSL-wise, since we're using their ns servers with our OVH domain.) Other utils we use are SendGrid for email sending & obviously HTML5 for the base Vue.js app. I hope this article will tell you more about the Tech we use here at RocketPlay :p

See more
Node.js
Node.js
Meteor
Meteor

Mixmax was originally built using Meteor as a single monolithic app. As more users began to onboard, we started noticing scaling issues, and so we broke out our first microservice: our Compose service, for writing emails and Sequences, was born as a Node.js service. Soon after that, we broke out all recipient searching and storage functionality to another Node.js microservice, our Contacts service. This practice of breaking out microservices in order to help our system more appropriately scale, by being more explicit about each microservice’s responsibilities, continued as we broke out numerous more microservices.

See more
AWS Elastic Beanstalk
AWS Elastic Beanstalk
AWS Elastic Load Balancing (ELB)
AWS Elastic Load Balancing (ELB)
nginx
nginx
Go
Go
Amazon EC2
Amazon EC2
Node.js
Node.js
Meteor
Meteor
Mixmax
Mixmax

As Mixmax began to scale super quickly, with more and more customers joining the platform, we started to see that the Meteor app was still having a lot of trouble scaling due to how it tried to provide its reactivity layer. To be honest, this led to a brutal summer of playing Galaxy container whack-a-mole as containers would saturate their CPU and become unresponsive. I’ll never forget hacking away at building a new microservice to relieve the load on the system so that we’d stop getting paged every 30-40 minutes. Luckily, we’ve never had to do that again! After stabilizing the system, we had to build out two more microservices to provide the necessary reactivity and authentication layers as we rebuilt our Meteor app from the ground up in Node.js. This also had the added benefit of being able to deploy the entire application in the same AWS VPCs. Thankfully, AWS had also released their ALB product so that we didn’t have to build and maintain our own websocket layer in Amazon EC2. All of our microservices, except for one special Go one, are now in Node with an nginx frontend on each instance, all behind AWS Elastic Load Balancing (ELB) or ALBs running in AWS Elastic Beanstalk.

See more
Paul Whittemore
Paul Whittemore
Developer and Owner at Appurist Software · | 14 upvotes · 58.9K views
Fastly
Fastly
Electron
Electron
vuex
vuex
Vue.js
Vue.js
Quasar Framework
Quasar Framework
Vuetify
Vuetify
Node.js
Node.js
ExpressJS
ExpressJS
Fastify
Fastify

I'm building most projects using: Server: either Fastify (all projects going forward) or ExpressJS on Node.js (existing, previously) on the server side, and Client app: either Vuetify (currently) or Quasar Framework (going forward) on Vue.js with vuex on Electron for the UI to deliver both web-based and desktop applications for multiple platforms.

The direct support for Android and iOS in Quasar Framework will make it my go-to client UI platform for any new client-side or web work. On the server, I'll probably use Fastly for all my server work, unless I get into Go more in the future.

See more
Praveen Mooli
Praveen Mooli
Technical Leader at Taylor and Francis · | 11 upvotes · 105K views
MongoDB Atlas
MongoDB Atlas
Amazon S3
Amazon S3
Amazon DynamoDB
Amazon DynamoDB
Amazon RDS
Amazon RDS
Serverless
Serverless
Docker
Docker
Terraform
Terraform
Travis CI
Travis CI
GitHub
GitHub
RxJS
RxJS
Angular 2
Angular 2
AWS Lambda
AWS Lambda
Amazon SQS
Amazon SQS
Amazon SNS
Amazon SNS
Amazon Kinesis Firehose
Amazon Kinesis Firehose
Amazon Kinesis
Amazon Kinesis
Flask
Flask
Python
Python
ExpressJS
ExpressJS
Node.js
Node.js
Spring Boot
Spring Boot
Java
Java
#Data
#Devops
#Webapps
#Eventsourcingframework
#Microservices
#Backend

We are in the process of building a modern content platform to deliver our content through various channels. We decided to go with Microservices architecture as we wanted scale. Microservice architecture style is an approach to developing an application as a suite of small independently deployable services built around specific business capabilities. You can gain modularity, extensive parallelism and cost-effective scaling by deploying services across many distributed servers. Microservices modularity facilitates independent updates/deployments, and helps to avoid single point of failure, which can help prevent large-scale outages. We also decided to use Event Driven Architecture pattern which is a popular distributed asynchronous architecture pattern used to produce highly scalable applications. The event-driven architecture is made up of highly decoupled, single-purpose event processing components that asynchronously receive and process events.

To build our #Backend capabilities we decided to use the following: 1. #Microservices - Java with Spring Boot , Node.js with ExpressJS and Python with Flask 2. #Eventsourcingframework - Amazon Kinesis , Amazon Kinesis Firehose , Amazon SNS , Amazon SQS, AWS Lambda 3. #Data - Amazon RDS , Amazon DynamoDB , Amazon S3 , MongoDB Atlas

To build #Webapps we decided to use Angular 2 with RxJS

#Devops - GitHub , Travis CI , Terraform , Docker , Serverless

See more
Martin Johannesson
Martin Johannesson
Senior Software Developer at IT Minds · | 10 upvotes · 12.6K views
atIT MindsIT Minds
AMP
AMP
PWA
PWA
React
React
MongoDB
MongoDB
Next.js
Next.js
GraphQL
GraphQL
Apollo
Apollo
PostgreSQL
PostgreSQL
TypeORM
TypeORM
Node.js
Node.js
TypeScript
TypeScript
#Serverless
#Backend
#B2B

At IT Minds we create customized internal or #B2B web and mobile apps. I have a go to stack that I pitch to our customers consisting of 3 core areas. 1) A data core #backend . 2) A micro #serverless #backend. 3) A user client #frontend.

For the Data Core I create a backend using TypeScript Node.js and with TypeORM connecting to a PostgreSQL Exposing an action based api with Apollo GraphQL

For the micro serverless backend, which purpose is verification for authentication, autorization, logins and the likes. It is created with Next.js api pages. Using MongoDB to store essential information, caching etc.

Finally the frontend is built with React using Next.js , TypeScript and @Apollo. We create the frontend as a PWA and have a AMP landing page by default.

See more
Samuel Olugbemi
Samuel Olugbemi
Software Engineer at Payzone UK · | 6 upvotes · 8.5K views
atPayzone UKPayzone UK
ExpressJS
ExpressJS
LoopBack
LoopBack

I use LoopBack because it is: * It is truly and Unbelievably Extensible * it is default integrated with OpenAPI (Swagger) Spec Driven REST API * I write lesser codes, because most of the user stories have been covered using the code generation * It's documentation is more compact and well detailed than ExpressJS * It is very easy to learn, hence you can build a basic Rest API App in minutes * It has built in NPM packages required to build my Rest API which saves me time on installation and configuration * The Datasource/Service/Controller concept is just Brilliant (that's mostly all you need to get your app speaking with an External API services) * The support for SOAP and Rest API services is amazing!

See more
Interest over time
Reviews of ExpressJS and Node.js
Avatar of mihaicracan
Web Developer, Freelancer
Review ofNode.jsNode.js

I have benchmarked Node.js and other popular frameworks using a real life application example. You can find the results here: https://medium.com/@mihaigeorge.c/web-rest-api-benchmark-on-a-real-life-application-ebb743a5d7a3

How developers use ExpressJS and Node.js
Avatar of MaxCDN
MaxCDN uses Node.jsNode.js

We decided to move the provisioning process to an API-driven process, and had to decide among a few implementation languages:

  • Go, the server-side language from Google
  • NodeJS, an asynchronous framework in Javascript

We built prototypes in both languages, and decided on NodeJS:

  • NodeJS is asynchronous-by-default, which suited the problem domain. Provisioning is more like “start the job, let me know when you’re done” than a traditional C-style program that’s CPU-bound and needs low-level efficiency.
  • NodeJS acts as an HTTP-based service, so exposing the API was trivial

Getting into the headspace and internalizing the assumptions of a tool helps pick the right one. NodeJS assumes services will be non-blocking/event-driven and HTTP-accessible, which snapped into our scenario perfectly. The new NodeJS architecture resulted in a staggering 95% reduction in processing time: requests went from 7.5 seconds to under a second.

Avatar of Trello
Trello uses Node.jsNode.js

The server side of Trello is built in Node.js. We knew we wanted instant propagation of updates, which meant that we needed to be able to hold a lot of open connections, so an event-driven, non-blocking server seemed like a good choice. Node also turned out to be an amazing prototyping tool for a single-page app. The prototype version of the Trello server was really just a library of functions that operated on arrays of Models in the memory of a single Node.js process, and the client simply invoked those functions through a very thin wrapper over a WebSocket. This was a very fast way for us to get started trying things out with Trello and making sure that the design was headed in the right direction. We used the prototype version to manage the development of Trello and other internal projects at Fog Creek.

Avatar of AngeloR
AngeloR uses Node.jsNode.js

All backend code is done in node.js

We have a SOA for our systems. It isn't quite Microservices jsut yet, but it does provide domain encapsulation for our systems allowing the leaderboards to fail without affecting the login or education content.

We've written a few internal modules including a very simple api framework.

I ended up picking Node.js because the game client is entirely in JavaScript as well. This choice made it a lot easier for developers to cross borders between being "client side" game developers and "server side" game developers. It also meant that the pool of knowledge/best practices is applicable almost across the company.

Avatar of Tony Manso
Tony Manso uses Node.jsNode.js

Node.js is the foundation for the server. Using Express.js for serving up web content, and sockets.io for synchronizing communications between all clients and the server, the entire game runs as Javascript in Node.js.

I don't know how well this will scale if/when I have hundreds of people connected simultaneously, but I suspect that when that time comes, it may be just a matter of increasing the hardware.

As for why I chose Node.js... I just love JavaScript! My code is all original, meaning that I didn't have to inherit anyone's bad Javascript. I'm perfectly capable of creating my own bad Javascript, thank you! Also, npm rocks!

Avatar of Tarun Singh
Tarun Singh uses Node.jsNode.js

Used node.js server as backend. Interacts with MongoDB using MongoSkin package which is a wrapper for the MongoDB node.js driver. It uses express for routing and cors package for enabling cors and eyes package for enhancing readability of logs. Also I use nodemon which takes away the effort to restart the server after making changes.

Avatar of Cloudcraft
Cloudcraft uses ExpressJSExpressJS

Express.js is the workhorse of the Cloudcraft.co backend. It's not the most exciting part of a stack, but it works, is very well documented, and you can find a plugin for almost everything you could possibly want. We also carefully evaluated Koa.js, but decided not to go down this route: fewer plugins, less documentation & answers online. I'm also not personally convinced by the generators yield syntax at all. ES7 async functions looks like a much better bet, and with Promises and Babel I can have that already today.

Avatar of Volkan Özçelik
Volkan Özçelik uses ExpressJSExpressJS

I use express.js for nightly.zerotoherojs.com and dojo.zerotoherojs.com web apps.

Express is well-known, lightweight, works out-of-the-box, has great middleware support and has minimal learning curve.

It is the best framework to start developing a general Node.js web app.

Avatar of Kent Steiner
Kent Steiner uses ExpressJSExpressJS

I'm fluent in ExpressJS, but over the past two years I have moved to HapiJS. Similar results, but I find Hapi to be more full-featured towards my app, api and service needs. I can operate confidently in both.

Avatar of Promethean TV
Promethean TV uses ExpressJSExpressJS

PrometheanTV utilizes the ExpressJS web application framework to deploy various web applications and services including the Broadcast Center Tool, our video embed service, and our REST API.

Avatar of Merge In
Merge In uses ExpressJSExpressJS

We rely on ExpressJS to serve our content simply, easily, and effectively, without the bloat-ware. Big thanks to StrongLoop for supporting this package.

How much does ExpressJS cost?
How much does Node.js cost?
Pricing unavailable
Pricing unavailable
News about ExpressJS
More news