No estoy seguro si entendí completamente la broma de tu pregunta. Si quieres conocer el funcionamiento interno profundo en un intento de hacer Node2, lamentablemente aún no puedo ayudarte. Si te gusto, vengo de un fondo de código sincrónico y de repente la gente comienza a hablar de asíncrono … entonces sé lo que duele bastante bien.
var http = require (‘http’),
req = http.request ({hostname: localhost, puerto: 8000, ruta: ‘/ log / AD43’, método: ‘POST’}, handleReply)
.on (‘error’, (err) => {
console.log (‘Problema con la publicación:’ + err.message);
});
req.write (“algo”);
req.end ();
función handleReply (res) {
if (res.statusCode! == 200) {
console.log (‘ESTADO:’ + res.statusCode);
console.log (‘HEADERS:’ + JSON.stringify (res.headers));
res.setEncoding (‘utf8’);
res.on (‘datos’, función (fragmento) {
console.log (‘CUERPO:’ + fragmento);
}). on (‘fin’, función () {
console.log (‘No más datos en respuesta’);
});
}
Lo anterior es un código válido que llama a una API web Rest y maneja el resultado. Más bien corto no lo es. Pero funciona e impresionantemente rápido.
- ¿Cuál es el mejor lenguaje de programación para crear un sitio web (como un blog personal)?
- ¿Cuál es la mejor manera de implementar el Proyecto Reactjs?
- ¿Cuáles son algunas ideas de nombre significativas para una empresa de desarrollo web?
- ¿Qué es diferente b / w angular js y angular 2?
- ¿Qué tan útil es HTML y CSS?
Lo primero es que invocamos cosas al convertirlas en un objeto asignado a alguna variable. Por lo tanto, var http significa que podemos usar http para invocar métodos y funciones desde el objeto http. Este BTW se crea en un archivo separado … por lo tanto, se requiere aquí. Otros idiomas usan include o lib o import.
En segundo lugar, como la mayoría de los lenguajes de script java, puede asignar múltiples variables en una sola declaración, por lo tanto, una coma y el siguiente objeto llamado req que se crea invocando desde el objeto http las cosas relacionadas con la solicitud. Esto toma algunas opciones en ip y puerto, etc. y aquí viene … una devolución de llamada.
Esta vez nombré el significado de devolución de llamada cuando el objeto req regrese con resultados irá a la función handleReply y hará sus cosas. Tenga en cuenta que una devolución de llamada en general tiene un objeto que puede nombrar cualquier cosa (en este caso para la legibilidad res). Este objeto contiene propiedades y métodos relacionados con cualquier función de devolución de llamada.
Los objetos también pueden tener su propia funcionalidad. En este caso, el objeto req obtiene una nueva función .on que salta a la acción si se detecta un error. Esto también es una devolución de llamada. Sin embargo, aquí uso el método de la función de flecha. Esto es mucho más corto que llamar a una función separada. Simplemente más legible. Tenga en cuenta que, al igual que las devoluciones de llamada normales, se devuelve un objeto … en este caso lo llamé err.
También hay un método no ECMA anterior que utiliza una función anónima más elaborada como puede ver (dos veces) aquí:
res.on (‘datos’, función (fragmento) {
console.log (‘CUERPO:’ + fragmento);
}). on (‘fin’, función () {
console.log (‘No más datos en respuesta’);
});
Esto seria equivalente
res.on (‘datos’, (fragmento) => {
console.log (‘CUERPO:’ + fragmento);
}). on (‘fin’, () => {
console.log (‘No más datos en respuesta’);
});