Página principal » Codificación » Guía para principiantes de Node.js (JavaScript del lado del servidor)

    Guía para principiantes de Node.js (JavaScript del lado del servidor)

    Node.js - en palabras simples - es JavaScript del lado del servidor. Se ha estado haciendo mucho ruido en estos días. Si has oído hablar de él o estás interesado en aprender y hacerte con él, esta publicación es para ti..

    Entonces, ¿qué es exactamente la necesidad de usar JavaScript en el servidor? Para aclarar el concepto de Node.js, me gustaría compararlo con los lenguajes ordinarios del servidor, como PHP. Node.js utiliza un procedimiento de ejecución del servidor basado en eventos en lugar de la ejecución multiproceso en PHP.

    Para explicarlo más a fondo, hablaremos de la idea de que es Node.js junto con algunos Sugerencias de proveedores de alojamiento y consejos de instalación.. Se requieren conocimientos de nivel intermedio de JavaScript, jQuery y Ajax, pero también le proporcionaremos ejemplos para que pueda comprender todo más fácilmente e incluso trabajar en ello, así que vamos a conocer más sobre Node.js!

    Consideremos un caso:

    Considere un sitio web en el que necesite cargar contenido dinámicamente desde otro servidor web que sea lento. En PHP puedes hacerlo de 2 maneras. - codificándolo en un simple archivo y codificándolo como otro script, entonces ejecutándolo en un enfoque multiproceso.

    En el primer método aunque el código es simple. La ejecución se detiene por un rato. en el punto donde se accede al servidor web lento. El segundo metodo es Más optimizado en caso de rendimiento. pero es difícil de codificar y tiene una sobrecarga de administración de subprocesos múltiples. El caso es similar para la mayoría de los lenguajes de programación web distintos del JavaScript del lado del servidor, es decir, Node.js.

    ¿Cuál es la diferencia en Node.js? Para entender Node.js debes tener en cuenta el Programación basada en eventos de JavaScript en el navegador.. Aquí utilizamos la misma tecnología. En lugar de utilizar un hilo separado, un La función está adjunta al evento final. del “acceso lento al servidor web” mencionado anteriormente, por lo que obtiene la funcionalidad completa en la segunda opción optimizada mencionada anteriormente sin ninguna sobrecarga de subprocesos múltiples.

    Empezando con Node.js

    Node.js es JavaScript. ¿Por qué no podemos utilizar la funcionalidad basada en eventos de JavaScript en el cliente a un servidor? Este pensamiento podría haber llevado al desarrollo de Node.js.

    Dicho esto, lo más destacado de Node.js. - Se trata de funciones asíncronas basadas en eventos.. Utiliza un bucle de eventos en lugar de esperar las operaciones de E / S (acceso al servicio web externo, acceso al hardware).

    Node.js podría todavía hacer uso de su poder de procesamiento Cuando el servidor está a la espera de alguna otra operación. Esto hace que Node.js. escalable a millones de conexiones concurrentes.

    ¿Cómo se ejecuta JavaScript en un servidor?

    Node.js trabaja en un entorno v8 - es un máquina virtual o un Motor de JavaScript que ejecuta el código JavaScript, por lo que para el hospedaje no puede usar los hosts web normales. Necesitarás los que tengan la entorno v8.

    Aquí hay algunas sugerencias de proveedores para el alojamiento de Node.js:

    1. Fundición de nubes
    2. Cloudnode
    3. DotCloud
    4. Duostack

    Instalación de Node.js

    Nodo Funciona perfectamente en los sistemas operativos Linux, Macintosh y Solaris.. En Windows puedes instalarlo usando la capa de emulación Cygwin. Ninguna de las compilaciones en Windows es satisfactoria, pero aún es posible hacer que algo funcione..

    Opción 1: Construir Nodo desde la fuente.

    Utilizar hacer para construir e instalar node.js (ejecute lo siguiente en la línea de comandos). Se requiere git.

     git clone --depth 1 git: //github.com/joyent/node.git cd nodo git checkout v0.4.11 export JOBS = 2 mkdir ~ / local ./configure --prefix = $ HOME / local / node make make install echo 'export PATH = $ HOME / local / node / bin: $ PATH' >> ~ / .profile echo 'export NODE_PATH = $ HOME / local / node: $ HOME / local / node / lib / node_modules' >> ~ / .profile source ~ / .profile 

    Opción 2: instalar Node.js desde el paquete

    Para los usuarios de Mac, puede instalar Node.js como un paquete desde https://sites.google.com/site/nodejsmacosx/ que es bastante autoexplicativo.

    Instalación del nodo de prueba

    Para verificar la correcta instalación de Node, podemos probar un programa de consola "Hello World" muy simple. Crea un archivo llamado "test.js"y escriba el siguiente código en él.

     var sys = require ("sys"); sys.puts ("Hello World"); 

    Explicación del código:

    Se carga la sys clase en una variable sys. A continuación, utiliza el sys Objeto para realizar las tareas de la consola. los sys.puts es un comando similar al cout en C ++, para ejecutar el script anterior, vaya al símbolo del sistema y ejecútelo con el siguiente comando:

     prueba de nodo.js 

    Si su instalación es exitosa, obtendrá una salida de hello world en la pantalla..

    Creando un servidor HTTP

    Ahora es el momento de crear un "Hello World" a través del servidor web utilizando Node.js. Esto es lo que vamos a hacer - nosotros crear un servidor que produce una “Hola Mundo” al localhost en el puerto 8080 no importa cuál sea la URL, dándole una idea de lo que evento es.

    Los códigos:

     var sys = require ("sys"), my_http = require ("http"); my_http.createServer (función (solicitud, respuesta) sys.puts ("Me dieron una patada"); response.writeHeader (200, "Content-Type": "text / plain"); response.write ("Hello World "); response.end ();). listen (8080); sys.puts ("Server Running on 8080"); 

    Explicación del código:

    La parte más interesante en Node.js es su programación basada en eventos. Para crear un servidor HTTP necesitamos el Biblioteca HTTP, Así que vamos adelante y lo agregamos usando mi_http. Creamos servidor por la función:

     my_http.createServer (función (solicitud, respuesta) ). listen (8080); 

    La función dada como primer argumento se ejecuta. Cada vez que se desencadena un evento en el puerto 8080, así que la función en sí sugiere el nodo para escuchar un evento en el puerto 8080. Para detectar esto, he añadido un “Me patearon” Mensaje que se mostrará en la pantalla de la consola cada vez que se reciba una solicitud..

    los solicitud objeto contiene Toda la información sobre la solicitud que se ha realizado al servidor.. Por ejemplo, contiene la cadena de URL. los respuesta objeto es el objeto que Maneja la respuesta del servidor.. Primero establecemos el encabezado de la respuesta como un Texto sin formato contenido, luego salidas “Hola Mundo“, luego termina el flujo de salida. 200 es la respuesta de estado.

    Bueno, el anterior es un ejemplo muy simple, pero podemos ver que cualquier URL que proporcionemos en el navegador para el mismo servidor obtenemos la misma salida, como “Hola Mundo”.

    Creando un servidor de archivos estático simple

    Vamos a crear un servidor de archivos estático simple en el siguiente tutorial.

    Los códigos:

     var sys = require ("sys"), my_http = require ("http"), path = require ("path"), url = require ("url"), filesys = require ("fs"); my_http.createServer (function (request, response) var my_path = url.parse (request.url) .pathname; var full_path = path.join (process.cwd (), my_path); path.exists (full_path, function (existe ) if (! existe) response.writeHeader (404, "Content-Type": "text / plain"); response.write ("404 Not Found \ n"); response.end (); else filesys.readFile (full_path, "binary", function (err, file) if (err) response.writeHeader (500, "Content-Type": "text / plain"); response.write (err + "\ n"); response.end (); else response.writeHeader (200); response.write (archivo, "binario"); response.end ();););). escuchar (8080); sys.puts ("Server Running on 8080"); 

    Códigos de explicación:

    El código anterior es bastante simple, lo discutiremos como bloques..

     var sys = require ("sys"), my_http = require ("http"), path = require ("path"), url = require ("url"), filesys = require ("fs"); 

    Todas estas bibliotecas son necesarias para el programa. Su uso quedará claro en el siguiente código..

     var my_path = url.parse (request.url) .pathname; var full_path = path.join (process.cwd (), my_path); 

    los solicitud objeto tiene los detalles de la solicitud como hemos discutido anteriormente. Usamos el analizar gramaticalmente función de la clase de URL que hemos incluido para obtener el nombre de ruta de la URL de solicitud. Después de obtener el nombre de ruta, lo concatenamos con la ruta del directorio de trabajo actual para obtener la ruta completa del archivo..

    Para unir URLs tenemos una función llamada unirse en la biblioteca de ruta.

     ruta.existe (ruta completa, función (existe)  

    Después de obtener la ruta completa, verificamos si la ruta existe por la función existe. Una vez realizada la comprobación, se llama a la función de devolución de llamada y se pasa como segundo argumento.

     if (! existe) response.writeHeader (404, "Content-Type": "text / plain"); response.write ("404 No encontrado \ n"); response.end ();  else filesys.readFile (full_path, "binary", function (err, file) if (err) response.writeHeader (500, "Content-Type": "text / plain"); response.write ( err + "\ n"); response.end (); else response.writeHeader (200); response.write (archivo, "binario"); response.end (););  

    Ahora en la función de devolución de llamada si el archivo no existe enviamos un "404 Pagina no encontrada"error.

    Si se encuentra la página, entonces leemos el archivo por la leerarchivo Funciona en el sistema de archivos. También podemos ver la función de devolución de llamada para el leerarchivo Función definida allí mismo. Si no hay ningún error en la lectura del archivo, se mostrará. Si hay un error, se devuelve un estado 500 con el texto de error.

    También recomiendo incluir los códigos del tutorial anterior en una función para que pueda usarlos en el siguiente tutorial o para usar en el futuro..

     var sys = require ("sys"), my_http = require ("http"), path = require ("path"), url = require ("url"), filesys = require ("fs"); my_http.createServer (function (request, response) var my_path = url.parse (request.url) .pathname; var full_path = path.join (process.cwd (), my_path); path.exists (full_path, function (existe ) if (! existe) response.writeHeader (404, "Content-Type": "text / plain"); response.write ("404 Not Found \ n"); response.end (); else filesys.readFile (full_path, "binary", function (err, file) if (err) response.writeHeader (500, "Content-Type": "text / plain"); response.write (err + "\ n"); response.end (); else response.writeHeader (200); response.write (archivo, "binario"); response.end (););); my_http. createServer (función (solicitud, respuesta) var my_path = url.parse (request.url) .pathname; load_file (my_path, response);). listen (8080); sys.puts ("Server Running on 8080"); 

    Manténganse al tanto !

    Eso es todo. Espero que esto te dé una buena idea de Node.js. En el siguiente artículo, te mostraré cómo carga y muestra el número de "me gusta" de Facebook usando Node.js. Manténganse al tanto!

    Nota del editor: Esta publicación está escrita por Geo paul para Hongkiat.com. Geo es un desarrollador web / iPhone independiente que disfruta trabajar con PHP, Codeigniter, WordPress, jQuery y Ajax. Tiene 4 años de experiencia en PHP y 2 años de experiencia en el desarrollo de aplicaciones para iPhone..