Get Advice Icon

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

ExpressJS
ExpressJS

5.9K
4.3K
+ 1
1.3K
nginx
nginx

54.7K
13.1K
+ 1
5.4K
Add tool

ExpressJS vs nginx: 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, nginx is detailed as "A high performance free open source web server powering busiest sites on the Internet". nginx [engine x] is an HTTP and reverse proxy server, as well as a mail proxy server, written by Igor Sysoev. According to Netcraft nginx served or proxied 30.46% of the top million busiest sites in Jan 2018.

ExpressJS and nginx are primarily classified as "Microframeworks (Backend)" and "Web Servers" tools respectively.

"Simple", "Node.js" and "Javascript" are the key factors why developers consider ExpressJS; whereas "High-performance http server", "Performance" and "Easy to configure" are the primary reasons why nginx is favored.

ExpressJS and nginx are both open source tools. It seems that ExpressJS with 44.6K GitHub stars and 7.48K forks on GitHub has more adoption than nginx with 9.11K GitHub stars and 3.44K GitHub forks.

According to the StackShare community, nginx has a broader approval, being mentioned in 8677 company stacks & 2561 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 nginx?

nginx [engine x] is an HTTP and reverse proxy server, as well as a mail proxy server, written by Igor Sysoev. According to Netcraft nginx served or proxied 30.46% of the top million busiest sites in Jan 2018.
Get Advice Icon

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

Why do developers choose ExpressJS?
Why do developers choose nginx?

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

    Be the first to leave a con
    Jobs that mention ExpressJS and nginx as a desired skillset
    PinterestPinterest
    San Francisco, CA; Palo Alto, CA
    PinterestPinterest
    San Francisco, CA; Palo Alto, CA
    PinterestPinterest
    San Francisco, CA; Palo Alto, CA
    PinterestPinterest
    San Francisco, CA; Palo Alto, CA
    What companies use ExpressJS?
    What companies use nginx?

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

    What tools integrate with ExpressJS?
    What tools integrate with nginx?

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

    What are some alternatives to ExpressJS and nginx?
    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 nginx
    Tim Abbott
    Tim Abbott
    Founder at Zulip | 4 upvotes 32.9K views
    atZulipZulip
    Apache HTTP Server
    Apache HTTP Server
    nginx
    nginx

    We've been happy with nginx as part of our stack. As an open source web application that folks install on-premise, the configuration system for the webserver is pretty important to us. I have a few complaints (e.g. the configuration syntax for conditionals is a pain), but overall we've found it pretty easy to build a configurable set of options (see link) for how to run Zulip on nginx, both directly and with a remote reverse proxy in front of it, with a minimum of code duplication.

    Certainly I've been a lot happier with it than I was working with Apache HTTP Server in past projects.

    See more
    Go
    Go
    Lua
    Lua
    OpenResty
    OpenResty
    nginx
    nginx
    Logstash
    Logstash
    Prometheus
    Prometheus

    At Kong while building an internal tool, we struggled to route metrics to Prometheus and logs to Logstash without incurring too much latency in our metrics collection.

    We replaced nginx with OpenResty on the edge of our tool which allowed us to use the lua-nginx-module to run Lua code that captures metrics and records telemetry data during every request鈥檚 log phase. Our code then pushes the metrics to a local aggregator process (written in Go) which in turn exposes them in Prometheus Exposition Format for consumption by Prometheus. This solution reduced the number of components we needed to maintain and is fast thanks to NGINX and LuaJIT.

    See more
    Antonio Kobashikawa
    Antonio Kobashikawa
    Web developer | Blogger | Freelancer at Rulo Kobashikawa | 4 upvotes 39K 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
    Scott Mebberson
    Scott Mebberson
    CTO / Chief Architect at Idearium | 5 upvotes 16.8K views
    Caddy
    Caddy
    nginx
    nginx

    We used to primarily use nginx for our static web server and proxy in-front of Node.js. Now, we use Caddy. And we couldn't be happier.

    Caddy is simpler on all fronts. Configuration is easier. Free HTTPS out of the box. Some fantastic plugins. And for the most part, it's fast.

    Don't get me wrong, it's not lost on me that Nginx is actually a superior product.

    But for the times when you don't need that extra performance, and complexity - take a look at Caddy.

    See more
    Simon Bettison
    Simon Bettison
    Managing Director at Bettison.org Limited | 6 upvotes 74.6K views
    atBettison.org LimitedBettison.org Limited
    Amazon EC2 Container Service
    Amazon EC2 Container Service
    Docker
    Docker
    Amazon VPC
    Amazon VPC
    Amazon Route 53
    Amazon Route 53
    Amazon SQS
    Amazon SQS
    Amazon SES
    Amazon SES
    Amazon CloudFront
    Amazon CloudFront
    nginx
    nginx
    Unicorn
    Unicorn
    Ruby
    Ruby
    Travis CI
    Travis CI
    Selenium
    Selenium
    RSpec
    RSpec
    Rails
    Rails
    Amazon ElastiCache
    Amazon ElastiCache
    Redis
    Redis
    Sidekiq
    Sidekiq
    Elasticsearch
    Elasticsearch
    PostgreSQL
    PostgreSQL

    In 2010 we made the very difficult decision to entirely re-engineer our existing monolithic LAMP application from the ground up in order to address some growing concerns about it's long term viability as a platform.

    Full application re-write is almost always never the answer, because of the risks involved. However the situation warranted drastic action as it was clear that the existing product was going to face severe scaling issues. We felt it better address these sooner rather than later and also take the opportunity to improve the international architecture and also to refactor the database in. order that it better matched the changes in core functionality.

    PostgreSQL was chosen for its reputation as being solid ACID compliant database backend, it was available as an offering AWS RDS service which reduced the management overhead of us having to configure it ourselves. In order to reduce read load on the primary database we implemented an Elasticsearch layer for fast and scalable search operations. Synchronisation of these indexes was to be achieved through the use of Sidekiq's Redis based background workers on Amazon ElastiCache. Again the AWS solution here looked to be an easy way to keep our involvement in managing this part of the platform at a minimum. Allowing us to focus on our core business.

    Rails ls was chosen for its ability to quickly get core functionality up and running, its MVC architecture and also its focus on Test Driven Development using RSpec and Selenium with Travis CI providing continual integration. We also liked Ruby for its terse, clean and elegant syntax. Though YMMV on that one!

    Unicorn was chosen for its continual deployment and reputation as a reliable application server, nginx for its reputation as a fast and stable reverse-proxy. We also took advantage of the Amazon CloudFront CDN here to further improve performance by caching static assets globally.

    We tried to strike a balance between having control over management and configuration of our core application with the convenience of being able to leverage AWS hosted services for ancillary functions (Amazon SES , Amazon SQS Amazon Route 53 all hosted securely inside Amazon VPC of course!).

    Whilst there is some compromise here with potential vendor lock in, the tasks being performed by these ancillary services are no particularly specialised which should mitigate this risk. Furthermore we have already containerised the stack in our development using Docker environment, and looking to how best to bring this into production - potentially using Amazon EC2 Container Service

    See more
    Chris McFadden
    Chris McFadden
    VP, Engineering at SparkPost | 7 upvotes 44.8K views
    atSparkPostSparkPost
    Lua
    Lua
    OpenResty
    OpenResty
    nginx
    nginx

    We use nginx and OpenResty as our API proxy running on EC2 for auth, caching, and some rate limiting for our dozens of microservices. Since OpenResty support embedded Lua we were able to write a custom access module that calls out to our authentication service with the resource, method, and access token. If that succeeds then critical account info is passed down to the underlying microservice. This proxy approach keeps all authentication and authorization in one place and provides a unified CX for our API users. Nginx is fast and cheap to run though we are always exploring alternatives that are also economical. What do you use?

    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
    nginx
    nginx

    I use nginx because it is very light weight. Where Apache tries to include everything in the web server, nginx opts to have external programs/facilities take care of that so the web server can focus on efficiently serving web pages. While this can seem inefficient, it limits the number of new bugs found in the web server, which is the element that faces the client most directly.

    See more
    Nicolas Theck
    Nicolas Theck
    Student at RocketPlay | 3 upvotes 19.7K 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
    Marcel Kornegoor
    Marcel Kornegoor
    CTO at AT Computing | 6 upvotes 8.2K views
    Apache HTTP Server
    Apache HTTP Server
    nginx
    nginx

    nginx or Apache HTTP Server that's the question. The best choice depends on what it needs to serve. In general, Nginx performs better with static content, where Apache and Nginx score roughly the same when it comes to dynamic content. Since most webpages and web-applications use both static and dynamic content, a combination of both platforms may be the best solution.

    Since both webservers are easy to deploy and free to use, setting up a performance or feature comparison test is no big deal. This way you can see what solutions suits your application or content best. Don't forget to look at other aspects, like security, back-end compatibility (easy of integration) and manageability, as well.

    A reasonably good comparison between the two can be found in the link below.

    See more
    Paul Whittemore
    Paul Whittemore
    Developer and Owner at Appurist Software | 14 upvotes 55.6K 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 97.6K 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
    Samuel Olugbemi
    Samuel Olugbemi
    Software Engineer at Payzone UK | 6 upvotes 7.9K 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 nginx
    No reviews found
    How developers use ExpressJS and nginx
    Avatar of MaxCDN
    MaxCDN uses nginxnginx

    The original API performed a synchronous Nginx reload after provisioning a zone, which often took up to 30 seconds or longer. While important, this step shouldn鈥檛 block the response to the user (or API) that a new zone has been created, or block subsequent requests to adjust the zone. With the new API, an independent worker reloads Nginx configurations based on zone modifications.It鈥檚 like ordering a product online: don鈥檛 pause the purchase process until the product鈥檚 been shipped. Say the order has been created, and you can still cancel or modify shipping information. Meanwhile, the remaining steps are being handled behind the scenes. In our case, the zone provision happens instantly, and you can see the result in your control panel or API. Behind the scenes, the zone will be serving traffic within a minute.

    Avatar of Cloudcraft
    Cloudcraft uses nginxnginx

    Nginx serves as the loadbalancer, router and SSL terminator of cloudcraft.co. As one of our app server nodes is spun up, an Ansible orchestration script adds the new node dynamically to the nginx loadbalancer config which is then reloaded for a zero downtime seamless rolling deployment. By putting nginx in front or whatever web and API servers you might have, you gain a ton of flexibility. While previously I've cobbled together HAProxy and Stun as a poor man's loadbalancer, nginx just does a much better job and is far simpler in the long run.

    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 datapile
    datapile uses nginxnginx

    Used nginx as exactly what it is great for: serving static content in a cache-friendly, load balanced manner.

    It is exclusively for production web page hosting, we don't use nginx internally, only on the public-facing versions of static sites / Angular & Backbone/Marionette applications.

    Avatar of P膿teris Caune
    P膿teris Caune uses nginxnginx

    We use NGINX both as reverse HTTP proxy and also as a SMTP proxy, to handle incoming email.

    We previously handled incoming email with Mandrill, and then later with AWS SES. Handling incoming email yourself is not that much more difficult and saves quite a bit on operational costs.

    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 Wirkn Inc.
    Wirkn Inc. uses nginxnginx

    NGINX sits in front of all of our web servers. It is fantastic at load balancing traffic as well as serving as a cache at times when under massive load. It's a robust tool that we're happy to have at the front lines of all Wirkn web apps.

    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 nginx cost?
    Pricing unavailable
    Pricing unavailable
    News about ExpressJS
    More news