Anda di halaman 1dari 28

Node.

JS
Raspberry Pi (RPi)

2015/05/08
Juan V. Capella
Contenido

● Objetivo
● Introducción
● Operadores
● Tipos de datos
● Funciones
● Networking

armpower.blogs.upv.es 2
Objetivo

● Aprender a instalar Node.js


● Conocer Node.js y qué nos ofrece
● Introducirse en la programación en javascript con la Raspberry Pi

armpower.blogs.upv.es 3
Introducción
● Plataforma de ejecución de aplicaciones para ejecutar scripts escritos en
JavaScript sin usar ningún navegador
● Principal objetivo
● Facilitar el desarrollo de aplicacones centradas en E/S, como son las
aplicaciones en red
● Permite construir aplicaciones que se adaptan fácilmente a entornos en
los que la carga de transacciones aumenta
– Aplicaciones escalables
● http://nodejs.org

armpower.blogs.upv.es 4
Instalar Node.JS en la Raspberry Pi
● sudo mkdir /opt/node
● wget http://nodejs.org/dist/v0.10.17/node-v0.10.17-
linux-arm-pi.tar.gz
● tar xvzf node-v0.10.17-linux-arm-pi.tar.gz
● sudo cp -r node-v0.10.17-linux-arm-pi/* /opt/node
● node -v

armpower.blogs.upv.es 5
JavaScript
● Lenguaje de programación orientado a entornos web
● No es Java
● Orientado a entornos web. Esto no quiere decir que su uso sea exclusivo
para ese ámbito
● Permite una gran interacción y dinamismo por parte del usuario con la
página web
● Lenguaje interpretado por un intérprete
● En el navegador (JS en cliente)
● En el servidor (p. ej. node.js)
● ¡No compilamos!
● ¡Detectamos errores de sintaxis en tiempo de ejecución!
● Es case sensitive
● Las sentencias acaban con “;”

armpower.blogs.upv.es 6
Hola Mundo en JavaScript
<html>
<head>
<title>Hola Mundo</title>
</head>
<body>
<script type="text/javascript">
document.write("Hola Mundo");
</script>
</body>
</html>

armpower.blogs.upv.es 7
JavaScript: Declaración de variables
● Cuando se declara una variable (var), no se especifica su tipo:
● tipo se infiere del contenido que tenga
var nombreVariable;
● El nombre de las variables tiene que empezar por una letra o guión bajo
● Las variables pueden ir cambiando de tipo y de contenido:
var variable;
variable = [0,2,4,6]; //Array
variable = "Hola mundo"; //String
variable = 6; //Integer
● Sólo habrá errores de compilación en operaciones de variables de tipos
diferentes

armpower.blogs.upv.es 8
JavaScript: Tipos de datos
● Primitivos:
● number, string, boolean

● Compuestos:
● Objetos, funciones, arrays..

armpower.blogs.upv.es 9
JavaScript: Comentarios
● Dos tipos:
● Comentario de una sola línea:
//comentario

● Comentario de bloque:
/*
comentario
*/

armpower.blogs.upv.es 10
JavaScript: Operadores
● ==
● !=
● >
● <
● <=
● >=
● &&
● ||
● !
● +=
● -=
● ++
● --

armpower.blogs.upv.es 11
JavaScript: Estructuras de control
● Condicional if:
if (condición){
código a efectuar si se cumple la condición;
}
else{
código a efectuar si no se cumple la condición;
}

● Otra manera de hacerlo:


var variable = (condición) ? expresión_cierta : expresión_falsa

armpower.blogs.upv.es 12
JavaScript: Estructuras de control
● Bucle while:
while (condición){
código a realizar mientras se cumpla la condición;
}

● Bucle do while:
do{
código a realizar mientras se cumpla la condición;
}
while (condición);

armpower.blogs.upv.es 13
JavaScript: Estructuras de control
● Bucle for:
for (valor_inicial; condición; incremento/decremento){
código a realizar mientras se cumpla la condición;
}
● Bucle for in (para propiedades de objetos):
var curso = new Curso(“Titulo”, 20);
for (var prop in curso) {
document.write(curso[prop]);
}
Opción switch:
switch (expresión){
case valor: código a realizar;
case valor2: código a realizar;
…………………………
armpower.blogs.upv.es 14
JavaScript: Estructuras de control
● Opción switch:
switch (expresión){
case valor: código a realizar;
case valor2: código a realizar;
…………………………
case valorn: código a realizar;
}
● Con break podemos hacer que no siga la evaluación de la expresión

armpower.blogs.upv.es 15
JavaScript: Objetos
● En JavaScript todo son objetos que derivan del objeto base Object
● Podemos crear un objeto, y añadirle atributos una vez creado
● Al crearlo, podemos indicar un prototipo
var producto = new Object();
producto.nombre = producto.precio = 3;
producto.muestra = imprimir;
function imprimir(){
document.write(“El producto es un “ + producto.nombre +
“<br/>”);
document.write(“El producto cuesta “ + producto.precio +
“<br/>”);
}
producto.muestra();
producto.precio = 4;
producto.muestra();

armpower.blogs.upv.es 16
JavaScript: Objetos

● Dos maneras de inicializar los atributos y métodos de un objeto:


var coche1 = new Object();
coche1.matricula = “3798CGN”;
coche1.esNuevo = True;
coche1.numPuertas = 4;

var coche2 = {matricula: “3798CGN”, esNuevo: True,


numPuertas: 4};

armpower.blogs.upv.es 17
JavaScript: Objetos
● Para definir una clase en JS, simplemente definimos una función (el
constructor), y luego creamos los objetos con new seguido del constructor
● Usamos this para acceder al objeto en el constructor:
function Producto(){
this.nombre = “libro”;
this.precio = 3;
}
var producto = new Producto();
document.write(“Producto “ + producto.nombre);

armpower.blogs.upv.es 18
JavaScript: Objetos
● Clases con métodos:
function Producto(){
this.nombre = “libro”;
this.precio = 3;
this.muestra = imprimir;
}
function imprimir(){
document.write(“El producto es un “ + producto.nombre
+ “<br/>”);
document.write(“El producto cuesta “ +
producto.precio + “<br/>”);
}
var producto = new Producto();
document.write(“Producto “ + producto.muestra());
● unction Producto(){
armpower.blogs.upv.es
this.nombre = “libro”; 19
JavaScript: Funciones
● En JavaScript las funciones son un tipo de objeto más
● Palabra clave function para definir funciones
● No indicamos si devuelve (o no) algo una función.
● Si no devuelve nada, devuelve undefined
● No indicamos tipos

function suma (a, b) {


return a + b;
}
function imprime (a) {
document.write(“Num “ + a);
}

armpower.blogs.upv.es 20
JavaScript: Funciones
● Llamar a funciones JavaScript desde el HTML:
<script type=”text/javascript”>function hola() {alert(“¡hola!”);}</script>
● Desde HTML, en un enlace
<a href=”JavaScript:hola()”>Pincha aquí</a>
● Desde HTML, en un evento
<input type=”button” value=”Di hola” onClick=”hola();” />
● Funciones anónimas:
● Podemos asignar directamente una función a una variable sin darle
nombre:
var hola = function() {
saludo = “Hola”;
return saludo;
}
saludar = hola

armpower.blogs.upv.es 21
JavaScript: Pop-ups
● Manera sencilla de avisar al usuario
● Los hay de tres tipos: alert, confirm y prompt
● Son de fácil programación
● Se suele utilizar la interfaz gráfica del sistema operativo para dibujarlos en
pantalla
● algunos navegadores los implementan por cuenta propia
● Alert
● mensaje de alerta que avisará al usuario de algún evento:
– alert("Ejemplo de ‘alert’ en JavaScript");

armpower.blogs.upv.es 22
JavaScript: Pop-ups
● Con el confirm se puede mostrar un mensaje al usuario que esperará una
respuesta de este, y devolverá true o false dependiendo de la decisión que
haya tomado:
● confirm("Ejemplo de ‘confirm’ en JavaScript");

● El prompt es un mensaje que espera una cadena de caracteres introducida


por el usuario y la devuelve en forma de String:
● prompt("Ejemplo de ‘prompt’ en JavaScript");

armpower.blogs.upv.es 23
JavaScript: Funciones predefinidas
● eval(String);
● Evalúa la cadena String que le viene por su único parámetro como si
fuera una sentencia JavaScript. Si es una sentencia correcta, se
ejecutará:
● eval(“alert(‘La función eval ejecutará este
alert’);”);
● parseInt(String, [opcional]base);
● Convierte la cadena de caracteres del primer parámetro (que deben ser
números) a entero. El segundo parámetro opcional indica la base del
número (por defecto, base 10). Si la conversión no se puede efectuar,
devolverá NaN:
parseInt(“479”);

armpower.blogs.upv.es 24
JavaScript
● Actualmente, prácticamente todos los navegadores soportan JavaScript
● Podemos utilizar las etiquetas <noscript> y </noscript> como alternativa
para los navegadores que no acepten JavaScript:
<noscript>Si puede leer este mensaje, es que su
navegador no soporta JavaScript.</noscript>

armpower.blogs.upv.es 25
La API de Node.js: extendiendo JS
● Procesos
● Filesystem
● Networking
● Utilidades

● http://nodejs.org/api/

armpower.blogs.upv.es 26
Node.js Hello World: Simple Servidor HTTP
var http = require('http'); //importamos una libreria
http.createServer(function (req, res) {
//definimos una funcion para manejar peticiones http
res.writeHead(200, {'Content-Type': 'text/plain'});
res.end('Hello World\n');
}
var s = http.creatServer(manejador); //creamos servidor
s.listen(8000, "127.0.0.1"); //y lo ponemos en marcha

armpower.blogs.upv.es 27
● sudo shutdown -h now

armpower.blogs.upv.es 28

Anda mungkin juga menyukai