دورة nodejs للمبتدئين الدرس الثالت عشر


فهاد الدرس الثالت عشر من دورة nodejs للمبتدئين غادي نكملو الدورة ديالنا غادي نشوفوا كيفاش نديرو la connexion مع la base de données mysql منبعد غادي نشوفوا كيفاش نسترجعوا القيم لي دخلنا فالفورم قبل منزيدوهم فقاعدة البيانات.


1- إضافة body-parser & mysql

فباش ندير la connexion مع قاعدة البيانات mysql لازم من installer driver لي هو mysql فغادي تدير ل commande : 
npm install mysql
منبعد ملي يتزاد غادي ن installer body-parser لي كيمكن باش نسترجع القيم لي دخلنا فالفورم فغادي تدير ل commande : 
npm install body-parser 
منبعد ملي يتزادو غادي نزيدوهم ف app.js فالكود ديال الملف بعد التعديل هو :

                                var express = require('express');
var path = require('path');
var bodyParser = require('body-parser');
var mysql = require('mysql');
var app = express();
//import handlebars
var exphbs  = require('express-handlebars');
//set template engine to handlebars
app.engine('handlebars', exphbs({defaultLayout: 'main'}));
app.set('view engine', 'handlebars');
//use body parser
app.use(bodyParser.json());
app.use(bodyParser.urlencoded({extended:false}));
app.use(express.static(path.join(__dirname,'public')));


//page index
app.get('/', function (req, res) {
    res.render('home');
});
//page add contact
app.get('/add', function (req, res) {
  res.render('add');
});

//create server
app.listen(3000, function () {
  console.log('server started at port 3000')
});
                            

2- إضافة قاعدة البيانات

غادي نزيدو قاعدة بيانات جديدة ف phpmyadmin نسميوها contacts فيها table وحدة contacts الكود باش تزيد la table فقاعدة البيانات هو :


                                -- Structure de la table `contacts`
--
  
CREATE TABLE `contacts` (
  `id` int(11) NOT NULL,
  `name` varchar(255) NOT NULL,
  `tel` int(11) NOT NULL,
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
  
ALTER TABLE `contacts`
  ADD PRIMARY KEY (`id`);
  
ALTER TABLE `contacts`
  MODIFY `id` int(11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=0;
                            

3- الإتصال بقاعدة البيانات

باش نتصل بقاعدة البيانات كنزيد الكود لي سبق ودرناه فدروس سابقة فكن créer la connexion كنعطي les variables de connexion منبعد كنتحقق يلا تكونيكطا كن afficher message connecté.
الكود ديال لملف app.js بعد التعديل :

                                var express = require('express');
var path = require('path');
var bodyParser = require('body-parser');
var mysql = require('mysql');
var app = express();
//import handlebars
var exphbs  = require('express-handlebars');
//set template engine to handlebars
app.engine('handlebars', exphbs({defaultLayout: 'main'}));
app.set('view engine', 'handlebars');
//use body parser
app.use(bodyParser.json());
app.use(bodyParser.urlencoded({extended:false}));
app.use(express.static(path.join(__dirname,'public')));
// etablir la connexion
var con = mysql.createConnection({
    host: "localhost",
    user: "root",
    password: "",
    database : "contacts"
});
con.connect(function(err) {
  if (err) throw err;
  console.log("Connecté");
});
//page index
app.get('/', function (req, res) {
    res.render('home');
});
//page add contact
app.get('/add', function (req, res) {
  res.render('add');
});

//create server
app.listen(3000, function () {
  console.log('server started at port 3000')
});
                            

4- استرجاع القيم من الفورم

فباش نسترجع القيم من الفورم كنخدم ب body-parser فكنزيد route  /add لي عطيتو post ملشي get يعني غادي نصيفط معلومات من الفورم  فهاد الجزء فقط غادي نعرضوهم فالجزء القادم غادي نزيدوهم فقاعدة البيانات.
فعندي req.body.name لي كنسترجع به اسم الحقل لي هو name ولي فيه كندخل الإسم ونفس الشي بالنسبة ل tel.
فيلا دخلت المعلومات كيف كنشوف فالصورة وضغطت على valider :



 كنحصل على هاد النتيجة :



الكود ديال لملف app.js بعد التعديل :

                                    var express = require('express');
var path = require('path');
var bodyParser = require('body-parser');
var mysql = require('mysql');
var app = express();
//import handlebars
var exphbs  = require('express-handlebars');
//set template engine to handlebars
app.engine('handlebars', exphbs({defaultLayout: 'main'}));
app.set('view engine', 'handlebars');
//use body parser
app.use(bodyParser.json());
app.use(bodyParser.urlencoded({extended:false}));
app.use(express.static(path.join(__dirname,'public')));
// etablir la connexion
var con = mysql.createConnection({
    host: "localhost",
    user: "root",
    password: "",
    database : "contacts"
});
con.connect(function(err) {
  if (err) throw err;
  console.log("Connecté");
});
//page index
app.get('/', function (req, res) {
    res.render('home');
});
//page add contact
app.get('/add', function (req, res) {
  res.render('add');
});
//get form data 
app.post('/add', function (req, res) {
  res.send('Nom & Prénom : ' + req.body.name + ' ' + 'Téléphone : ' + req.body.tel);
});
//create server
app.listen(3000, function () {
  console.log('server started at port 3000')
});