5. Application stack
• HTTP server (or TCP-socket or
websockets)
• Router
• Request handlers
• Handle data received
• View logic
6. HTTP server
var http = require("http");
http.createServer(function(request, response) {
response.writeHead(200, {"Content-Type": "text/plain"});
response.write("Hello World");
response.end();
}).listen(8888);
7. TCP server
var net = require('net');
var server = net.createServer(function (socket) {
socket.write('Echo serverrn');
socket.pipe(socket);
});
server.listen(1337, '127.0.0.1');
8. Modules
server.js
var http = require("http");
function start() {
function onRequest(request, response) {
console.log("Request received.");
response.writeHead(200, {"Content-Type": "text/plain"});
response.write("Hello World");
response.end();
}
http.createServer(onRequest).listen(8888);
console.log("Server has started.");
}
exports.start = start;
index.js
var server = require("./server");
server.start();
9. Router and handlers
• You can program the routes based on
request.url
var server = require("./server");
var router = require("./router");
var requestHandlers = require("./requestHandlers");
var handle = {}
handle["/"] = requestHandlers.start;
handle["/start"] = requestHandlers.start;
handle["/upload"] = requestHandlers.upload;
server.start(router.route, handle);
• I recommend using express (Sinatra like)
11. Websockets
• Canal de comunicación full duplex
(bidireccional y a la vez) sobre TCP
• No hay cabeceras HTTP! (menos
overhead)
• Aplicaciones que requieren interacciones
en tiempo real
• URL tipo ws://