It’s important to understand what Node is doing under the hood when it’s serving files, especially since it isn’t actually that complicated. All the work we expect Apache, Nginx, and other servers to do for us automatically can be reduced to simple programming, little more than parsing a string. It’s also good to know what Node has built-in for those tasks. However, it’s safer, more efficient, and far more common to use one or more of the third-party tools already written to do this sort of work.
In the context of a web server, middleware is a layer between the guts of the server and the code you’re writing to run on it that provides a set of abstractions anyone writing code for the platform will be likely to need. It differs from other modules you might pull into your application in that it exists as a buffer between Node and your app, not a utility used within your app.
Connect is an overwhelmingly popular Node middleware framework that
provides the basis for other popular solutions like Express. One of the
tools Connect provides is the
static module, which does
exactly what we’ve done above, but in a more robust fashion. If we add in
Connect, we can write the same application with far less code:
var connect = require("connect"); connect(connect.static(__dirname + "/public")).listen(8000);
The code you see above replaces everything we wrote in the last example in just two lines. To actually run this, you’ll need to use npm to install Connect. Installing modules ...