Недавно я изучал Node.js и наткнулся на некоторые материалы по написанию простых серверов на базе Node.js. Например...
var express = require("express"),
http = require("http"), app;
// Create our Express-powered HTTP server
// and have it listen on port 3000
app = express();
http.createServer(app).listen(3000);
// set up our routes
app.get("/hello", function (req, res) {
res.send("Hello World!");
});
app.get("/goodbye", function (req, res) {
res.send("Goodbye World!");
});
... Теперь, хотя я, кажется, понимаю, что происходит в коде... Я немного смущен терминологией.... потому что, когда я слышу термин сервер, я думаю о таких вещах, как Apache или Nginx. Я привык думать, что они похожи на контейнер, который может содержать мои веб-приложения. Как сервер Node.js отличается от сервера Nginx/Apache? Не правда ли, что сервер Node.js (т.е. код) все еще может быть помещен в нечто вроде Nginx для запуска? Итак, почему оба называются "серверами", хотя код Node.js, по-видимому, является приложением, которое можно разместить и обслуживать с помощью Nginx.