Transp_modulo3
Páginas: 12 (2835 palabras)
Publicado: 21 de septiembre de 2015
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.