NodeJS
~
Partie 2
Title Text
- Lire dans un fichier
- readdir vs readirsync
Serveur woueb
- http
- requete, reponse, ...
- php vs nodejs : synchrone vs asynchrone 5sec vs 5secx2
Serveur woueb
- http
- requete, reponse, ...
- php vs nodejs : synchrone vs asynchrone 5sec vs 5secx2
var http = require('http');
var server = http.createServer(function (request, response){
response.writeHead(200, {"Content-Type": "text/plain"});
response.end("Hello World");
});
server.listen(8088);Serveur woueb
- Créer son propre module
Utilisation de npm
- express -> dépendances
- node_modules
- -g (global) - nodemon
- package.json
Utilisation d'Express
- dépends de connect
Utilisation d'Express
- dépends de connect
var express = require('express');
var app = express();
app.get('/', function(req, res){
res.send('Salut le monde!');
});
app.get('/toto', function(req, res){
res.send('toto');
});
app.get('/private', function(req, res){
res.send('unauthorized', 401);
});
Utilisation d'Express
- création fichier / répertoire public
- collisions des noms
...
var app = express();
app.use(express.static(__dirname + '/public'))
app.get('/', function(req, res){
...Utilisation d'Express
- logger
...
var app = express();
app.use(express.logger()); // avant & aprés static voir différence
app.get('/', function(req, res){
...Utilisation d'Express - Dynamique
- logger
...
var app = express();
var count = 0;
var devs = [
{name: 'Bobby', level: 3, bio: 'Bobby est bobby'},
{name: 'Dave', level: 1, bio: 'Dave est un dev'},
{name: 'Bobbynette', level: 6, bio: 'Bobbynette est l'amie de Bobby'},
{name: 'Tom', level: '2', bio: 'Tom est ton ami sur myspace'},
];
app.get('/counter', function(req, res){
count += 1;
res.send("vous êtes"+ count +"sur cette page!");
});
app.get('/devs/1', function(req, res){
res.send(devs[0].name + " " + devs[0].bio);
}); // Don't repeat your self
app.get('/devs/:id', function(req, res){
var id = req.param.id -1;
var dev = devs[id];
res.send(dev.name + " " + dev.bio);
});
Utilisation d'Express - Dynamique
- création formulaire html
- form action : /create-dev method: POST
...
var app = express();
app.use(express.bodyParser());
app.get(...)
// req.query.name // pour récupérer name dans GET
// req.body.name // pour récupérer name dans POST
app.post('/create-dev', function(req, res){
devs.push(
name: req.body.name,
level: parseInt(req.body.level, 10),
bio: req.body.bio
);
res.send("ok bob");
});Utilisation des templates
- EJS
...
var app = express();
app.use(express.bodyParser());
app.get(...)
// req.query.name // pour récupérer name dans GET
// req.body.name // pour récupérer name dans POST
app.post('/create-dev', function(req, res){
devs.push(
name: req.body.name,
level: parseInt(req.body.level, 10),
bio: req.body.bio
);
res.send("ok bob");
});Utilisation des templates
- EJS
...
var app = express();
app.use(express.bodyParser());
app.get(...)
// req.query.name // pour récupérer name dans GET
// req.body.name // pour récupérer name dans POST
app.post('/create-dev', function(req, res){
devs.push(
name: req.body.name,
level: parseInt(req.body.level, 10),
bio: req.body.bio
);
res.send("ok bob");
});Utilisation des bdd
- https://www.npmjs.com/package/couchdb-utils
- https://github.com/dscape/nano
- https://github.com/flatiron/cradle
NodeJS
By Robin Duval
NodeJS
En cours !
- 384