Diferència entre revisions de la pàgina «Introducció a Node.js»
m (→Tutorials) |
|||
| (Hi ha una revisió intermèdia del mateix usuari que no es mostren) | |||
| Línia 113: | Línia 113: | ||
// Shows the result on console window | // Shows the result on console window | ||
//console.log(rows[0]); | //console.log(rows[0]); | ||
| − | + | for (var i = 0; i < rows.length; i++) { | |
| − | + | console.log(rows[i].municipi); | |
| − | + | res.write(rows[i].municipi + '\n'); | |
| − | + | }; | |
| − | + | res.write('\n'); | |
| − | |||
res.end("Success!"); | res.end("Success!"); | ||
} | } | ||
| − | |||
}); | }); | ||
| − | |||
// The server will be listen on port 8080 | // The server will be listen on port 8080 | ||
}).listen(8080); | }).listen(8080); | ||
Revisió de 07:50, 22 feb 2022
Contingut
Què és i per a què serveix Node.js
Node és un intèrpret Javascript del cantó del servidor que canvia la noció de com hauria de treballar un servidor. El seu objectiu és permetre a un programador construir aplicacions altamente escalables i escriure codi que pugui gestionar desenes de milers de connexions simultànies en una sola màquina física.
Descàrrega i instal.lació de Node.js
NodeJS inclous npm, el gestor de paquets de node. Hauríem de tenir les versions el més actualitzades possible.
$ node --version v16.1.0 $ npm --version 7.13.0
hello world http server
Crearem un petit servidor web que escolti peticions http pel port 8080. Script hello_http.js:
var http = require('http');
var server = http.createServer(function(req, res) {
res.writeHead(200);
res.end('Hello Http');
});
server.listen(8080);
Arrenquem el servidor:
$ node hello_http.js
I en un navegador web ens comuniquem amb el servidor:
O bé podem comunicar-nos amb el servidor web a través de la línia de comandes, utilitzant la utilitat curl:
$ curl localhost:8080 Hello Http
NPM (Node Package Manager) per instal·lar el mòdul de mysql
La primera prova que vull fer és fer una connexió a una base de dades mysql. Per fer-ho utiltizaré la comanda:
var mysql = require('mysql');
però prèviament s'haurà d'instal.lar el módul mysql, i això es fa amb el Node Package Manager.
$ npm help
Usage: npm <command>
where <command> is one of:
add-user, adduser, apihelp, author, bin, bugs, c, cache,
completion, config, ddp, dedupe, deprecate, docs, edit,
explore, faq, find, find-dupes
...
Instal·lem el mòdul de mysql (per tal de què NodeJS sàpiga accedir a bases de dades mysql):
$ npm install mysql /home/joan/node-v0.12.18-linux-x64/bin └─┬ mysql@2.13.0 ├── bignumber.js@3.1.2 ├─┬ readable-stream@1.1.14 │ ├── core-util-is@1.0.2 │ ├── inherits@2.0.3 │ ├── isarray@0.0.1 │ └── string_decoder@0.10.31 └── sqlstring@2.2.0
NOTA: millor instal·lar la versió 2 del mòdul:
$ npm install mysql2
Per fer una connexió a mysql seguim:
Hauràs de tenir a mà una base de dades de mysql, una taula a la que vols accedir. Per exemple, es pot accedir a la base de dades municipis hostatjada en la màquina localhost:
$ mysql -h localhost -u alumne -pkeiL2lai municipis
Script acces_municipis.js:
var http = require('http');
var mysql = require('mysql2'); //versió 2 del mòdul
// Create a connection to MySql Server and Database
var connection = mysql.createConnection({
host : 'localhost',
port : 3306,
database: 'municipis',
user : 'alumne',
password : 'keiL2lai'
});
// Create a simple Web Server to respond to requests
http.createServer(function(req, res){
// RECEIVED A REQUEST!
// for this example respond with a HTTP 200 OK
res.writeHeader(200);
res.write('Connect to mySql\n');
// Query the database to some data (municipis de Jaén)
connection.query("select * from municipis m, provincies p where m.id_prov=p.id_prov and provincia='Jaén'", function(err, rows){
// There was a error or not?
if(err != null) {
res.end("Query error:" + err);
} else {
// Shows the result on console window
//console.log(rows[0]);
for (var i = 0; i < rows.length; i++) {
console.log(rows[i].municipi);
res.write(rows[i].municipi + '\n');
};
res.write('\n');
res.end("Success!");
}
});
// The server will be listen on port 8080
}).listen(8080);
Executem el script:
$ node acces_municipis.js
i des d'un navegador web accedim a la url:
Connect to mySql Albanchez de Mágina Alcalá la Real Alcaudete Aldeaquemada Andújar Arjona Arjonilla Arquillos Arroyo del Ojanco ... Success!
I per la consola també obtenim la llista dels municipis.
Tutorials
creat per Joan Quintana Compte, febrer 2022