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)
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 |