Transp_modulo3

Páginas: 12 (2835 palabras) Publicado: 21 de septiembre de 2015
Módulos node.js
Juan Quemada, DIT - UPM

©

1

Módulos node.js
node.js incluye un sistema de módulos que facilita el diseño de grandes programas
n

Cada modulo es un fichero diferente con un espacio de nombres local
w Un módulo es una closure creada por node, ver http://nodejs.org/api/modules.html

Un módulo se importa en otro módulo con la función
n

require()

(ver los detalles en:http://nodejs.org/api/modules.html)

Un módulo tiene una parte pública (interfaz) y otra privada (implementación)
n

Interfaz: parte visible en el exterior que permite utilizar el módulo a otros
w La interfaz del módulo se define individualmente los métodos exportados o el objeto interfaz
w Los métodos se exportan individualmente con: exports.metodo_individual =
w El objeto interfazcompleto se exporta con:

n

module.exports =

Implementación: código del módulo que crea la funcionalidad
w El bloque de instrucciones del módulo (cierre o closure)

© Juan Quemada, DIT, UPM

2

Ejemplo de módulos de node.js
El ejemplo siguiente es un programa con dos módulos, cada uno en un fichero diferente
n

Módulo 1: fichero mi_app.js
w importa el otro módulo (enfichero mi_app.js) con:

var circulo = require(‘./circulo.js');

w ambos ficheros están en el mismo directorio, hay que utilizar el path ‘./circulo.js'
n

Módulo 2: fichero circulo.js
w Exporta los dos métodos de la interfaz, area y circunferencia, con exports. = …..

//

Modulo 1: fichero ejecutable mi_app.js, que importa circulo.js

var circulo = require('./circulo.js'); // al estar en elmismo directorio, el path es ./circulo.js
console.log( 'Area (radio 4): ' + circulo.area(4)); //
//
//

=> Area (radio 4): 50.26548245743669

Modulo 2: fichero con librería circulo.js
-> exporta las propiedades y métodos de la variable global exports

var PI = Math.PI; // variable privada del módulo, no es visible en el exterior del módulo
exports.area
= function (r) { return PI * r * r; }; //método de la interfaz
exports.circunferencia = function (r) { return 2 * PI * r; }; // método de la interfaz
© Juan Quemada, DIT, UPM

3

Agenda como modulo
node.js encapsulando
un cierre
© Juan Quemada, DIT, UPM

4

Agenda como modulo
node.js encapsulando
una clase
© Juan Quemada, DIT, UPM

5

RegExp I: Búsqueda de patrones

©

6

Expresiones regulares: RegExp
◆Expresiones regulares:
4Mecanismomuy eficaz para procesar strings
• Soportado por muchos lenguajes y herramientas (UNIX)
»Emacs, vi, AWK, GREP, PERL, Java, Javascript, Ruby, ...

4Definen patrones que reconocen cadenas de caracteres específicas
• Si un patrón reconoce una cadena, se dice que casa (match) con el patrón

◆En JS se definen en la clase RegExp y se pueden crear con
RegExp(“expresion-regular”)
4Constructor:
• El stringpuede ser cualquier expresión regular
4RegExp literal:

/expresion-regular/

4Info: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Regular_Expressions
7

©

Búsqueda de patrones
◆ "string".match(/patrón/) busca /patrón/ en "string"
4Devuelve primera ocurrencia del patrón en un array ([match]), y si no casa devuelve null

◆ Algunos patrones básicos
4caracter:

/a/

reconoce solo elcaracter “a”

4sequencia:

/abc/

reconoce la secuencia “abc”

4principio de string:

/^hoy/

reconoce “hoy” al principio del string

4final de string:

/hoy$/

reconoce “hoy” al final del string

4cualquier caracter:

/./

reconoce cualquier caracter

"Es hoy".match(/hoy/)
"Es hoy”.match(/hoy/)[0]

=> ['hoy']
=> 'hoy'

"Es hoy".match(/hoy$/)
"Es hoy".match(/^hoy/)
"Es hoy”.match(/^…./)

=>['hoy']
=> null
=> [‘Es h']
8

©

Clases y rangos de caracteres
◆ Clase de caracteres: patrón con varios caracteres alternativos entre corchetes
4Ejemplo de clase de caracteres: /[aeiou]/ cualquier vocal (minúscula)
/[^aeiou]/ no debe ser vocal (minúsc.)
4Ejemplo de clase negada:
4Patrón \s:

reconoce separadores [\f\n\r\t\v\u00a0\u1680 ..…. ]

◆ Rango de caracteres: Patrón con un rango de caracteres...
Leer documento completo

Regístrate para leer el documento completo.

Conviértase en miembro formal de Buenas Tareas

INSCRÍBETE - ES GRATIS