Cómo crear un cronómetro con una vista frontal con el nodo JS

~ Si entendí correctamente ~

Aquí hay un comienzo (muy brusco) para un backend REST.

POST (re) establece la variable global stop_time.

GET regresa esa vez. No habría una gran diferencia al escribir en un DB dentro de list_time.

// Cronómetro
var http = require (“http”);
var appPort = 3000;
var appHost = ‘127.0.0.1’;
var stop_click = nueva Fecha ();

// deja de ver el clic
var stop_time = function () {
stop_click = nueva Fecha ();
};

// salida enrutada para llamada ajax o lo que sea
var list_time = function (req, res) {
res.write (JSON.stringify ({“stop_click”: stop_click}));
res.end ();
}
http.createServer (función (req, res) {
interruptor (método requerido) {
caso ‘POST’:
para el tiempo();
descanso;
caso ‘OBTENER’:
list_time (req, res);
descanso;
}
}). listen (appPort, appHost);

[Editar]

Abrir 127.0.0.1:3000 en un navegador devolverá el tiempo de detención establecido actualmente como JSON.

* Cambié * el nombre de la clave en el objeto JSON en la función list_time … “stop” está reservado y podría causar dolor más tarde …

En JavaScript antiguo simple , puede recuperarlo y mostrarlo de esta manera (menos formato bonito, etc.). jQuery tiene llamadas ajax mucho más sexys y node.js tiene módulos solo para esto … pero he intentado intencionalmente no involucrar un montón de bibliotecas o módulos externos.

función loadStopWatch () {
var xhttp = nuevo XMLHttpRequest ();
xhttp.onreadystatechange = function () {
if (xhttp.readyState == 4 && xhttp.status == 200) {
// escríbelo en un objeto en el DOM
document.getElementById (“displayStopTime”). innerHTML = xhttp.responseText;
// o una variable para usar en otro lugar
// var jsonObj = JSON.parse (xhttp.responseText);
// var stop_click = jsonObj.stop_click
}
};
xhttp.open (“GET”, “http://127.0.0.1:3000”, verdadero);
xhttp.send ();
}