اذهب إلى المحتوى
  • 0

node mysql

Hanan Fahad2

السؤال

ابغا انشي قاعدة بيانات وابغا اعمل جداول واجلب بيانات انا عمل الملف بس ماعرفت كيف اكمل كيف اخلي الاتصال يتعرف عله جميع الملفات وكيف اعمل جدول وانشاء في ملف اخر لااعرف الطريق بعد هذه الخطوات اتمنى الاطلاع واكمال الخطوات معي 

test3.rar

رابط هذا التعليق
شارك على الشبكات الإجتماعية

Recommended Posts

  • 0

مرحباً حنان،
بما أنك قد استمعلت قاعدة بيانات من نوع Mysql فلقد عرّفت الاتصال مع القاعدة بشكل صحيح،
الآن لإنشاء قاعدة بيانات جديدة باسم mydb مثلاً، نقوم بالتالي:
 

con.connect(function(err) {
  if (err) throw err;
  console.log("Connected!");
  con.query("CREATE DATABASE mydb", function (err, result) {
    if (err) throw err;
    console.log("Database created");
  });
});

وبذلك يتم طباعة Database created بعد إنشاء القاعدة بنجاح.
الآن لإنشاء جدول customers مثلاً، نقوم بالتالي:
 


con.connect(function(err) {
  if (err) throw err;
  console.log("Connected!");
  var sql = "CREATE TABLE customers (name VARCHAR(255), address VARCHAR(255))";
  con.query(sql, function (err, result) {
    if (err) throw err;
    console.log("Table created");
  });
});

لإضافة عناصر للجدول السابق نقوم بالتالي:
 

con.connect(function(err) {
  if (err) throw err;
  console.log("Connected!");
  var sql = "INSERT INTO customers (name, address) VALUES ('Company Inc', 'Highway 37')";
  con.query(sql, function (err, result) {
    if (err) throw err;
    console.log("1 record inserted");
  });
});

أما للقيام بالاستعلامات، فهي كالتالي:
 

con.connect(function(err) {
  if (err) throw err;
  con.query("SELECT * FROM customers", function (err, result, fields) {
    if (err) throw err;
    console.log(result);
  });
});

وهكذا تتم بقية العمليات.

أقترح عليك قراءة المرجع الرسمي الخاص لاحتوائه على الكثير من المعلومات المفيدة والتي قد تختلف بناءً على متطلباتك، أو قراءة بعض المقالات للتعامل مع Mysql ضمن Node Js (مثال)
بالتوفيق

رابط هذا التعليق
شارك على الشبكات الإجتماعية

  • 0
بتاريخ 19 دقائق مضت قال hanan fahad11:

اعرف كيف اضيفها لاكن دمجها ببرنامج اجعل التعامل معهم في الطلبات HTTP اتمنى تعملها بملفي وترسله لفهم دمجها ببرنامج 

إن التعامل مع طلبات HTTP ستتم عن طريق Express الذي قمت بتعريفه ضمن الكود، لذلك الآن عند استقبال طلب معيّن من طرف الزبون وليكن على route محدد، سيتم عندها تنفيذ الإجراء الخاص بذلك على قاعدة البيانات وإرسال النتيجة إلى الزبون، مثال لإضافة مستخدم إلى قاعدة البيانات:
 

router.post('/new', function(req, res) {
	// أولاً نقوم بتحضير الإجراء كالتالي
  let sql = `INSERT INTO users(name, gender) VALUES (?)`;

	ثم نقوم بجلب القيم من الطلب
  let values = [
    req.body.name, //هنا نضع اسم المستخدم الذي تم استقباله عن طريق http
    req.body.gender // هنا نضع جنس المستخدم الذي تم استقباله عن طريق Http
  ];


	\\ الآن نقوم بتنفيذ الإجراء على قاعدة البيانات
  db.query(sql, [values], function(err, data, fields) {
    if (err) throw err;
    res.json({
      status: 200,
      message: "New user added successfully"
    })
  })
});

//و عند اكتماله سيتم إرسال الرسالة السابقة إلى المستخدم مع الرمز 200 والذي يشير إلى الاكتمال SUCCESS

 

والآن لجلب المستخدمين من قاعدة البيانات، بشكل مشابه للسابق نقوم بالتالي:
 


router.get('/list', function(req, res) {
  let sql = `SELECT * FROM users`;
  db.query(sql, function(err, data, fields) {
    if (err) throw err;
    res.json({
      status: 200,
      data,
      message: "User lists retrieved successfully"
    })
  })
});

حيث قمنا بتعريف routes خاصة بكل طلب والذي سيقوم السيرفر عند تلقي الطلب بإجراء الاستعلام الموافق لها.

ملاحظة:

*في حال ليس لديك خبرة سابقة بالتعامل مع Express، قمنا هنا باستخدام الغرض router لسهولة التعامل معها وبالتالي يمكننا تصديرها فيما بعد إلى ملف خارجي. مثلاً نضع الكود السابق ضمن مجلد routes ضمن ملف خاص ولنسميه users.js وبالتالي يصبح الكود فيه كالتالي:

const express = require('express'),
  router = express.Router();

router.get('/list', function(req, res) {
  let sql = `SELECT * FROM users`;
  db.query(sql, function(err, data, fields) {
    if (err) throw err;
    res.json({
      status: 200,
      data,
      message: "User lists retrieved successfully"
    })
  })
});

router.post('/new', function(req, res) {
  let sql = `INSERT INTO users(name, gender) VALUES (?)`;
  let values = [
    req.body.name,
    req.body.gender
  ];
  db.query(sql, [values], function(err, data, fields) {
    if (err) throw err;
    res.json({
      status: 200,
      message: "New user added successfully"
    })
  })
});

module.exports = router;

والآن نقوم بتضمينه في الملف الرئيسي للمشروع، وفي ملفاتك يدعى index.js كالتالي:

const usersRouter = require('./routes/users');


ونخبر السيرفر بأن هذا الـ route موجود ويمكنه استخدامه عند تلقي الطلبات كالتالي:

app.use('/users', usersRouter);

وبذلك يمكننا إنشاء route خاص بكل كيان نريد التعامل معه في قاعدة البيانات. واستدعاء فقط الملف الخاص للسهولة.

بالتوفيق
 

رابط هذا التعليق
شارك على الشبكات الإجتماعية

  • 0

تمام هذا مااحتاجه لاكن في حال رغبت بفصل الطلبات في ملف 

router.post('/new', function(req, res)  

كيف يتعرف على الاتصال هل اضع الاتصال في كل الصفحات او ماهو السبيل لذلك 

رابط هذا التعليق
شارك على الشبكات الإجتماعية

  • 0
بتاريخ 8 دقائق مضت قال hanan fahad11:

تمام هذا مااحتاجه لاكن في حال رغبت بفصل الطلبات في ملف 

router.post('/new', function(req, res)  

كيف يتعرف على الاتصال هل اضع الاتصال في كل الصفحات او ماهو السبيل لذلك 

نعم لقد قمت بتعديل التعليق السابق ليشمل ذلك،
بالتوفيق

رابط هذا التعليق
شارك على الشبكات الإجتماعية

  • 0
بتاريخ 52 دقائق مضت قال hanan fahad11:

اشكرك اخي الكريم لتوضيع شكرا لك 

لم يتعرف على db لم يتعرف على الاتصال في الملف الاول كيف اخلي الاتصال عام 

يمكنك أيضاً وضع الاتصال بقاعدة البيانات بملف منفصل ثم استدعائه في الملفات الأخرى كالتالي:

var db = require("./connectMysql");

 

رابط هذا التعليق
شارك على الشبكات الإجتماعية

انضم إلى النقاش

يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.

زائر
أجب على هذا السؤال...

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   جرى استعادة المحتوى السابق..   امسح المحرر

×   You cannot paste images directly. Upload or insert images from URL.

  • إعلانات

  • تابعنا على



×
×
  • أضف...