Vous n'êtes pas connecté. Connexion
|
|
Master 2 Miage INTENSE Casablanca 2018-2019De $1Table des matières
IntroductionDans ce cours, nous ferons une introduction à JavaScript, à NodeJS/MongoDB et nous verrons les bases de ce qu'on appelle "les frameworks JavaScript" front-end au travers de ReactJS. Séance 1 : état des lieux du développement Web, intro à VueJSSupports de cours
EMSI CENTRESéance 1 : rappels JavaScript, introdution à VueJS, comparaison avec JavaScript pur.Petits exercices JavaScript faits en cours:
A faire pour la séance 2
Séance 2 : introduction à NodeJS et aux Web ServicesSupports de cours
TP création de WebServices avec NodeJS, aujourd'hui en GET
CORRECTION FAITE EN CLASSE (client vueJS + serveur REST Node avec GET/POST/DELETE)
Séance 3: installation de MongoDB et d'un outil d'administration
TP : connexion du code serveur NodeJS à MongoDB
var MongoClient = require('mongodb').MongoClient;
// Connection URL
const url = 'mongodb://localhost:27017';
// Database Name
const dbName = 'test';
exports.findRestaurants = function findRestaurants(callback) {
MongoClient.connect(url, (err, client) => {
// On est connecté à la base
var db = client.db(dbName);
if (!err) {
db.collection('restaurants')
.find()
.limit(10)
.toArray()
.then(resultats => {
callback(resultats);
});
}else {
callback(-1);
}
});
};
Enfin, nous allons relier ce code avec le fichier server.js afin de pouvoir exécuter la fonction findRestaurant qui envoie une requête à la base, lorsque l'uri /api/restaurants est invoqué par une requête HTTP GET. Je vous propose pour cela de rajouter en haut de votre fichier server.js les lignes pour importer le module crud-mongo.js dans le fichier server.js: server.js (seules les deux dernières lignes sont nouvelles) : var express = require('express');
var app = express();
// pour les formulaires multiparts
var multer = require('multer');
var multerData = multer();
// Mon module de connexion à MongoDB
const mongoDBModule = require('./app_modules/crud-mongo');
Et voici par exemple une route supplémentaire pour tester si cela fonctionne : app.get('/api/restaurantsbd', (req, res) => {
// paramètres optionnels passé en tant que
// query strings: ex /api/restaurants?page=2@pagesize=5&nom=Pizza
let page = req.query.page || 0;
let pagesize = req.query.pagesize || 10;
let nom = req.query.nom || "";
let cuisine = req.query.cuisine || "";
mongoDBModule.findRestaurants((data) => {
var reponse = {
msg: "restaurant recherchés avec succès",
data: data,
}
res.send(JSON.stringify(reponse));
});
})
Que remarquez-vous ? Comment est-ce qu'on appelle la fonction findRestaurants ? Quel est le paramètre d'appel de cette fonction ? Comment récupère-t-on les données en provenance de la base ? Travail à faire avec le prof en live coding: implémenter la prise en compte des paramètres de pagination, la recherche par nom, coder le findRestaurantById, et voir comment faire les autres opérations du CRUD (insertion, modification, suppression) CORRECTION FAITE EN CLASSE
EMSI MAARIFSéance 1 - présentation de NodeJS et premiers exercices simples
Outils à installer
Casablanca : exemples JsBin sur les objets JavaScript, fait en cours:
TP - routage avec le module ExpressJS, Web Services RESTFULVous allez créer des routes qui répondent en GET aux URIs suivants :
On fera aussi une route en POST sur /api/restaurants pour insérer une restaurant, et on la testera avec l'outil POSTMAN On fera une route en DELETE sur /api/restaurant/xxx pour supprimer un restaurant par id On fera une route en PUT sur /api/restaurant/xxx pour modifier un restaurant dont on passe l'URI. Correction faite en classe :
Séance 3: installation de MongoDB et d'un outil d'administration
|
Powered by MindTouch Deki Open Source Edition v.8.08 |