Node.JS Raspberry Pi (RPi)

Anuncio
Node.JS
Raspberry Pi (RPi)
2015/05/08
Juan V. Capella
Contenido
armpower.blogs.upv.es
●
Objetivo
●
Introducción
●
Operadores
●
Tipos de datos
●
Funciones
●
Networking
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.17linux-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");
armpower.blogs.upv.es
//y lo ponemos en marcha
27
●
sudo shutdown -h now
armpower.blogs.upv.es
28
Descargar