En la Conferencia JSCONF 2009, un joven programador llamado Ryan Dahl le mostró a People un proyecto en el que estaba trabajando, una plataforma de ejecución de JavaScript basada en Google V8 Engine, que proporciona un conjunto de bucles de eventos e interfaces de programación de aplicaciones de IO baja (API). A diferencia de otras plataformas del lado del servidor, JavaScript nace para ser IO basado en eventos, y este proyecto reduce en gran medida la complejidad de la escritura de aplicaciones basadas en eventos, por lo que rápidamente creció y se hizo popular a una velocidad increíble y se aplica a proyectos reales. (Jack: Esta traducción no es muy confiable, texto original: este proyecto no era como otras plataformas JavaScript del lado del servidor donde todas las primitivas de E/S estaban basadas en eventos y no había forma de evitarlo).
Este proyecto se llama Node.js, que los desarrolladores están acostumbrados a llamarlo nodo. Node proporciona un kit de herramientas sin bloqueo puramente impulsado por eventos para crear aplicaciones altamente concurrentes.
Nota: El nodo le permite construir fácilmente servicios de red rápidos y escalables.
Desde que fue introducido por Ryan Dahl, Node ha atraído una atención generalizada de la industria. Han comenzado a implementar servicios de red rápidos y escalables con nodo. El nodo es tan atractivo.
Por un lado, debido a JavaScript, JavaScript es el lenguaje de programación más utilizado en este planeta. La mayoría de los programadores web han utilizado JavaScript en el lado del navegador, y el lado del servidor es una extensión muy natural.
Por otro lado, debido a que el nodo es pequeño y lindo, el conjunto de funciones centrales del nodo es muy pequeña, y las API existentes son muy refinadas, minimizando la complejidad para los desarrolladores. Cuando desea crear aplicaciones más complejas, solo necesita elegir e instalar algunos módulos de terceros que le guste.
También hay una razón por la cual el nodo es tan atractivo que es fácil comenzar, puede descargarlo e instalarlo en minutos y ejecutarlo.
Por lo general, puede instalar Node de acuerdo con los pasos en el sitio web oficial (http://nodejs.org), que admite Windows, Linux, Macintosh y Solaris.
Instalar nodo en Windows
El nodo admite Windows desde la versión 0.6.0. Para instalar el nodo en Windows, simplemente descargue el nodo-v*.msi desde http://nodejs.org/#download, y luego haga doble clic para ejecutar. Entonces puede encontrar un diálogo de seguridad similar a la Figura 1-1.
Figura 1-1
Haga clic en el botón "Ejecutar", y después de completar la descarga, aparecerá otro cuadro de diálogo de seguridad (Figura 1-2), recordándole si está seguro de la operación.
Figura 1-2
Si está de acuerdo, aparecerá el asistente de instalación del nodo (Figura 1-3). Haga clic en Siguiente para iniciar la instalación del nodo, ¡y la instalación se completará en poco tiempo! Ver Figura 1-4
Figura 1-3
Figura 1-4
Instalar en Mac OS X
Si está utilizando Mac OS X, puede usar el Asistente de instalación para instalar el nodo. Primero, vaya a http://nodejs.org/#download para descargar Node-V*.pkg. Después de descargar, haga doble clic para ejecutar. Verá el primer cuadro de diálogo del asistente de instalación, vea la Figura 1-5
Figura 1-5
Haga clic en "Continuar" para instalar, y el asistente le pedirá que ingrese la contraseña del usuario del sistema. Después de confirmar, comenzará la instalación. Después de un tiempo, ¡el nodo está instalado nuevamente! Ver Figura 1-6
Figura 1-6
Instalar con código fuente
Si usa un sistema UNIX, puede instalarlo compilando el código fuente. Primero, debe seleccionar la versión de nodo que desea instalar, luego descargar el código fuente correspondiente y construirlo, instalar y ejecutar el nodo.
Nota: El nodo se basa en varias bases de código de terceros, pero afortunadamente la mayoría de ellas ya están incluidas en el paquete de lanzamiento del nodo. Si comienza a construir desde el código fuente, necesita las siguientes dos cosas:
1.python (versión 2.4 o superior): la herramienta de compilación lanzada con el nodo requiere un entorno de Python para ejecutar
2.libssl -dev: si planea usar el cifrado SSL/TLS, debe instalar esto. LibsSL es una biblioteca de clases utilizada por la herramienta OpenSSL. En los sistemas Linux y Unix, generalmente puede usar el Administrador de paquetes del sistema para instalarlo. LibsSL se preinstala en Mac OS X, por lo que si usa Mac OS X, generalmente ya no necesita instalar libssl.
Seleccionar versión de nodo
Por lo general, hay dos versiones de nodo diferentes para descargar en el sitio web oficial nodejs.org: la versión estable y la última versión.
Para el nodo, el bit de número de versión mínimo representa la estabilidad de esta versión, la versión estable utiliza números uniformes (como 0.2, 0.4, 0.6), y la versión no estable usa números impares (0.1, 0.3, 0.5, 0.7).
No solo la versión no estable es funcionalmente inestable, sino que la API también se puede cambiar en versiones posteriores, y las API lanzadas en la versión estable no se modificarán. Para cada rama estable, el nuevo parche no solo incluye correcciones de errores, sino que también cambia a la API en la versión no estable.
A menos que desee probar nuevas funciones en la última versión no estable, debe elegir la última versión estable. La versión no estable es como un campo de batalla para que el equipo de Node Core pruebe nuevas características.
Aunque cada vez más proyectos y empresas han utilizado con éxito Node en sus productos (se muestra la página de inicio del sitio web oficial), es posible que deba aprender a soportar los cambios en la API de una versión no estable a una versión estable. Por supuesto, este es el precio de aprender una nueva tecnología.
Descargar código fuente del nodo
Ahora sabe qué versión descargar, luego vaya al sitio web oficial http://nodejs.org para encontrar el paquete TAR correspondiente y luego copie el enlace de descarga. Si está utilizando el sistema UNIX, su sistema puede tener instalado WGet, lo que significa que puede descargarlo con un comando shell:
La copia del código es la siguiente:
$ wget http://nodejs.org/dist/v0.6.1/node-v0.6.12.tar.gz
Si no tiene instalado WGET, es posible que deba usar curl:
La copia del código es la siguiente:
$ curl o http://nodejs.org/dist/v0.6.1/node-v0.6.12.tar.gz
Si no tiene ninguna de estas herramientas instaladas, debe encontrar otras formas de descargar el paquete TAR a su directorio local, como a través de un navegador o a través de una red local.
(La última versión estable de los ejemplos en este libro al escribir: 0.6.12)
Construir nodo
Ahora que tenemos código fuente, podemos usarlo para crear el archivo ejecutable de nodo. Primero, debe descomponer el paquete de alquitrán que descargó anteriormente:
La copia del código es la siguiente:
$ tar xfz nodo-v0.6.12.tar.gz
Luego ingrese el directorio de origen:
Copie el código de la siguiente manera: $ CD Node-V0.6.12
Configuración:
Copie el código de la siguiente manera: $./Configurar
Si va bien, verá las indicaciones para el éxito:
Copie el código de la siguiente manera: 'Configurar' terminado con éxito (9.278s)
Entonces puedes comenzar a compilar:
La copia del código es la siguiente:
$ make
Después de compilar, habrá el siguiente mensaje:
La copia del código es la siguiente:
construir 'terminado con éxito (0.734s)
Instalar nodo
Cuando se construya, use el siguiente comando para instalar el nodo:
Copie el código de la siguiente manera: $ make install
Esta operación copiará el archivo ejecutable de nodo a/usuario/local/bin/node
Si encuentra problemas de permiso, agregue sudo antes del comando y ejecute como usuario root:
La copia del código es la siguiente:
$ sudo make install
Ejecutar nodo
Ahora que el nodo se está ejecutando, simplemente puede experimentar la interacción de interacción de línea de comando de Node (CLI: interfaz de línea de comandos), simplemente llame al archivo ejecutable de nodo:
La copia del código es la siguiente:
$ nodo
Esta operación iniciará la interfaz de interacción de línea de comando del nodo y esperará su entrada. Ingrese el siguiente comando para dejar que el nodo haga algo:
La copia del código es la siguiente:
> console.log ('¡Hola mundo!');
¡Hola Mundo!
> indefinido
También puede ejecutar un archivo de script JavaScript. Por ejemplo, crea un archivo llamado hello_world.js y contiene el siguiente contenido:
La copia del código es la siguiente:
console.log ('¡Hola mundo!');
Luego use el nombre del archivo de este script como el primer parámetro de parámetro para llamar al archivo ejecutable de nodo:
La copia del código es la siguiente:
$ node hello_world.js
¡Hola Mundo!
Finalmente, use Ctrl+D o Ctrl+C para salir de la interfaz interactiva de la línea de comando del nodo.
Prepare y use el Administrador de paquetes de nodo
Hasta ahora, solo puede usar las características del idioma y las funciones centrales del nodo en sí, por lo que la mayoría de las plataformas de programas tienen un sistema para descargar, instalar y administrar módulos de terceros. En el nodo, utilizamos el administrador de paquetes de nodo (NPM: Node Package Manager)
NPM contiene tres piezas: una base de código para almacenar paquetes de terceros, un mecanismo para administrar paquetes locales instalados y un estándar para definir las dependencias de los paquetes. NPM proporciona un servicio de registro público que contiene todos los paquetes publicados por todos y proporciona una herramienta de línea de comandos para descargar, instalar y administrar estos paquetes. Puede formular otros paquetes de terceros en los que su paquete o aplicación debe confiar de acuerdo con los estándares de formato de paquete de Node.
Aunque puede comenzar a usar Node sin comprender NPM, si desea usar un paquete de terceros, debe aprenderlo, porque el nodo en sí solo proporciona algunas API de bajo nivel. El uso de módulos de terceros puede reducir en gran medida la complejidad del desarrollo y no tiene que codificarse en persona. NPM le permite descargar y usar módulos en una caja de arena, y puede experimentar con lo que le interesa sin preocuparse por contaminar el entorno de paquete global.
NPM y Node previamente necesitaban instalarse de forma independiente. Desde la versión 0.6.0, NPM se ha incluido en el paquete de instalación del nodo.
Use NPM para instalar, actualizar y desinstalar paquetes
NPM es muy poderoso y puedes usarlo de muchas maneras. Su base de código administra todos los módulos públicos, y puede acceder a ella a través de http://search.npmjs.org. El autor del módulo de código abierto del nodo puede publicar su propio módulo a NPM, y otros pueden descargar e instalar este módulo utilizando el nombre del módulo en la descripción de instalación del paquete.
Esta parte del contenido incluye algunas operaciones comunes para instalar y eliminar paquetes. Saber que estos son suficientes para comenzar a administrar paquetes de terceros de los que depende su propia aplicación. Aun así, primero debe comprender la diferencia entre estos comandos en los modos "globales" y "locales" y cómo afectan las dependencias y las búsquedas de módulos.
Modos globales y locales de módulos NPM
Hay dos modos principales de operación NPM: global y local. Estos dos modos afectarán la estructura del directorio del paquete y el orden en el que el nodo carga el paquete.
El modo local es el modo de funcionamiento predeterminado de NPM. En este modo, NPM solo funciona en el directorio de trabajo y no causará modificaciones en todo el sistema. Este modo le permite instalar y probar módulos en un programa de nodo sin afectar otros programas de nodo en su computadora.
El modo global es adecuado para módulos públicos que serán utilizados por muchos programas y siempre se cargan a nivel mundial, como las herramientas de línea de comandos, que no serán utilizadas directamente por las aplicaciones.
Si no sabe qué modo instalar un módulo, debe usar el modo local. Si un autor del módulo necesita que se instale un módulo a nivel mundial, generalmente lo señalará en las instrucciones de instalación.
Modo global
Si usa el directorio predeterminado cuando instala el nodo, en modo global, NPM instalará el paquete en/usr/local/lib/node_modules. Si ejecuta el siguiente comando, NPM buscará y descargará la última versión llamada Sax e instalará en el directorio/usr/local/lib/node_modules/sax.
Copie el código de la siguiente manera: $ npm instalación g sax
Nota: Si su usuario de Shell actual no tiene suficientes permisos, debe usar el usuario root para iniciar sesión o usar sudo para ejecutar el comando:
La copia del código es la siguiente:
$ sudo npm install g sax
Luego, cuando necesite el módulo SAX en su script de nodo, use la siguiente declaración para cargar:
La copia del código es la siguiente:
var sax = require ('sax');
Si no ha instalado SAX en el directorio de aplicaciones en modo local, Node buscará un módulo llamado SAX en el directorio de instalación anterior, de lo contrario, la versión local se cargará primero.
El modo predeterminado es el modo local, por lo que debe agregar el indicador -g después del comando npm para habilitar el modo global.
Modo local
El modo local es el modo recomendado predeterminado para el mecanismo de dependencia del paquete de nodo. En este modo, todo lo instalado por NPM está en el directorio de trabajo actual (el directorio raíz no es una excepción), sin afectar ninguna configuración global. Este mecanismo le permite configurar los módulos de dependencia de la aplicación y sus versiones uno por uno sin preocuparse por contaminar el espacio del módulo global. Esto significa que puede tener dos aplicaciones que dependen de diferentes versiones del mismo módulo sin conflicto.
En este modo, NPM utiliza el directorio Node_Modules en el directorio de trabajo actual para almacenar módulos. Por ejemplo, su directorio de trabajo actual es/home/user/apps/my_app, npm usará/home/user/apps/my_app/node_modules para almacenar todos los módulos locales. Esto significa que si usa el nombre del módulo para referirse a un módulo en su código, el nodo primero buscará en el directorio local Node_Modules. Si no se encuentra, buscará el directorio Node_Modules global. La prioridad del módulo local siempre es más alta que el módulo global.
Instale el módulo
Use el siguiente comando para instalar la última versión de un módulo:
La copia del código es la siguiente:
$ npm instalación <nombre del paquete>
Por ejemplo, para descargar e instalar la última versión de un módulo llamado SAX, primero debe establecer el directorio raíz de su aplicación en el directorio actual y luego ingresar:
La copia del código es la siguiente:
Saxo de instalación de $ npm
Esta operación creará un subdirectorio Node_Modules (si no existe) en el directorio actual, y luego instale el módulo SAX a continuación.
También puede elegir instalar una versión específica a través del siguiente comando:
La copia del código es la siguiente:
$ NPM Install <Nombre del paquete>@<Version Spec>
Use el número de versión especificado para reemplazar el marcador de posición en el comando. Por ejemplo, para descargar la versión 0.2.5 del módulo SAX, solo necesita ejecutar:
La copia del código es la siguiente:
$ npm instalación [email protected]
Los marcadores de posición también se pueden reemplazar con un rango de versión. Por ejemplo, si desea instalar la última versión de la rama del módulo SAX 0.2, puede ejecutar:
La copia del código es la siguiente:
$ npm <a href = "http://www.trevorturnbull.com/" rel = "nofollow externo"> viagra canada en línea </a> instalar [email protected]
O instale la última versión con un número de versión inferior a 0.3:
La copia del código es la siguiente:
$ npm instalación sax@"<0.3"
Incluso puede especificar un rango de versión:
La copia del código es la siguiente:
$ npm instalación sax@"> = 0.1.0 <0.3.1"
Desinstalar el módulo
Use el siguiente comando para desinstalar un módulo local:
La copia del código es la siguiente:
$ npm desinstalar <nombre del paquete>
Si desea desinstalar un módulo global, agregue la etiqueta -g:
La copia del código es la siguiente:
$ npm uninstal -g <nombre del paquete>
Actualizar módulo
Use el siguiente comando para actualizar el módulo local:
La copia del código es la siguiente:
$ NPM Update <Nombre del paquete>
Este comando intentará obtener la última versión del paquete del módulo y actualizar la versión local. Si no está instalado localmente, lo instalará. Si el entorno global debe actualizarse, debe agregar la etiqueta -g:
La copia del código es la siguiente:
$ npm actualización g <nombre del paquete>
Uso de archivos ejecutables
Un módulo puede contener uno o más archivos ejecutables. Si utiliza la configuración de directorio predeterminada para instalar un módulo global, NPM instalará el archivo ejecutable en el directorio/usr/local/bin, que generalmente también se establece como parte de la variable de entorno de ruta del sistema. Si instala este módulo localmente, NPM colocará todos los archivos ejecutables en el directorio ./node_modules/.bin.
Manejar dependencias
NPM no solo instala el paquete del módulo que necesita, sino que también instala otros módulos en los que estos módulos dependen. Por ejemplo, si necesita instalar el módulo A, y A se basa en los módulos B y C, entonces cuando instale A, B y C se instalará en el directorio ./node_modules/a/node_modules.
Por ejemplo, utiliza el siguiente comando para instalar un módulo llamado nano localmente:
La copia del código es la siguiente:
$ npm instalación nano
La salida de NPM se verá así:
Esto le dice que el módulo Nano depende de los dos módulos subrayados y solicitan, y también señala la versión instalada. Si ahora verifica el directorio ./node_modules/nano/node_modules, encontrará que se han instalado estos dos módulos:
La copia del código es la siguiente:
$ ls node_modules/nano/node_modules
Solicitar subrayado
Definición de dependencias usando el archivo Packle.json
Cuando comienza a escribir una aplicación, puede crear un archivo paquete.json en el directorio raíz de la aplicación para definir los metadatos de la aplicación, como el nombre de la aplicación, el autor, la dirección base del código, la información de contacto, etc. Los módulos externos en los que depende el programa también se especifican en este archivo.
Si no planea publicar el programa en NPM, no necesita crear este archivo. Sin embargo, incluso si su programa es privado, este archivo es realmente útil. Puede decir a NPM las dependencias de la aplicación. (Nota del traductor: por ejemplo, si copia el código fuente del proyecto del entorno de desarrollo al entorno de producción, puede instalar todas las dependencias a la vez llamando a NPM Install. NPM completará automáticamente la descarga e instalación del módulo de dependencia a través de la relación de dependencia especificada en paquete.json, sin tener que operarlo uno por uno, lo introduciré en detalle más tarde)
Packle.json es un archivo de formato JSON que contiene una serie de atributos, pero si es solo para explicar las dependencias del programa, solo se utiliza un atributo de dependencias. Por ejemplo, una aplicación llamada MyApp se basa en los módulos de SAX, Nano y Solicitud, y solo necesita crear dicho paquete.json:
La copia del código es la siguiente:
{
"Nombre": "MyApp",
"Versión": "1.0.0",
"Dependencias": {
"Sax": "0.3.x",
"nano": "*",
"Solicitar": "> 0.2.0"
}
}
Usted especifica la aplicación MyApp, que depende de la versión 0.3 de SAX, cualquier versión de nano, y el módulo de solicitud con versiones superiores a 0.2.0.
Nota: Puede encontrar que si especifica los campos de nombre y versión, NPM no funcionará, lo que solo sucederá en versiones anteriores de NPM, porque inicialmente se usó NPM para módulos públicos, no programas privados.
Luego, en el directorio raíz de la aplicación, ejecute:
La copia del código es la siguiente:
Instalación de $ npm
De esta manera, NPM analizará las dependencias y su directorio Node_Modules local y descargará e instalará automáticamente los módulos que faltan.
También puede actualizar todos los módulos locales con la última versión que coincide con la configuración de dependencia que definió:
La copia del código es la siguiente:
Actualización de $ NPM
De hecho, solo usa el método de actualización, ya que permitirá a NPM obtener automáticamente esos módulos de dependencia faltantes.
resumen
Este capítulo aprende cómo instalar Node and Node Package Manager (NPM). Ahora puede usar NPM para instalar, desinstalar y eliminar cualquier módulo de terceros. También aprende cómo usar NPM para administrar las dependencias de aplicaciones con el archivo Packle.json.
Ahora que ha instalado Node y NPM, puede probarlo. Sin embargo, en primer lugar, debe conocer algunos conocimientos relevantes sobre los controladores de nodos y eventos. Estos contenidos se introducirán en el próximo capítulo.