IBM Bequeaths the Express Framework To the Node.js Foundation (thenewstack.io)
campuscodi writes: The Node.js Foundation has taken the Express Node.js framework under its wing. Express will be a new incubation project for the Foundation. IBM, which purchased Express maintainer StrongLoop last September, is contributing the code. Part of the reason for allowing the foundation to oversee Express is to build a diverse contributor base, which is important given the framework's popularity.
Express venturesomely acquiesced to the coadunation; one more of its neoteric, somewhat quixotic, adjudicatures.
node.js is a console-based JavaScript interpreter based off of Chrome's JavaScript engine. So you can basically write cross-platform (Windows, Max, Linux) desktop console apps in JavaScript. There is also NodeWebKit which is pretty much the same thing for desktop GUI applications, which uses HTML/CSS for that side of things.
Node has a few extra pieces of functionality over standard JavaScript for allowing for some normal desktop-y functionality. One of these things is the ability to run a HTTP or HTTPS server. However it's pretty bare-bones, relying on your code to do a lot of the work. You can set up an event handler to fire when someone requests a URL from your server, and you get your HTTP headers parsed for you, but it's up to your code to figure out what the URL is supposed to point to, resolve a local file path, set up the proper HTTP response headers, and then stream the file to the requester. That's just if you want a simple server, if you want to run custom code for specific URLs or URL patterns that's more work.
Express is a bunch of JS code bundled in a library (node calls these "modules") that builds a framework on top of the HTTP/HTTPS server functionality to make things a lot easier if you want one in your code. You can tell it in one line if you want a simple web server that serves on-disk files from a specific directory, or you can define "routes" (mapping URLs to specific blocks of code) to have custom functionality for specific URLs or URL patterns. You can even chain routes together so if multiple routes all match the same URL all the code runs, if that makes sense (eg a logging function that triggers on any request). It does a lot more too I'm sure, that is just the stuff I have used it for.