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

عمل INSERT من FormHTML باستخدام Node.js

Aysar Aldubaisi

السؤال

Recommended Posts

  • 0

المشكلة انك لم تنزل الحزم الخاصة بالمشروع وكذلك لم تقم بإعداد ملف public وكذلك تقوم بإرسال الطلبات إلى الـ port 3000 بينما السيرفر يعمل على الـ port 8000.

وكذلك فإنك استخدمت sqllite3 ولم تستخدم sqllite وهذا ما جعل الموضوع اصعب بكثير،

والحل هو تعديل ملف السيرفر للشكل التالي :

const bodyParser = require("body-parser");
const express = require("express")
var cors = require('cors')

const sqlite3 = require('sqlite3')
const { open } = require('sqlite')

const startServer = async () => {
	// open the database
	const db = await open({
		filename: './FileStudents.db',
		driver: sqlite3.Database
	})

	try {
		await db.exec(`CREATE TABLE student (
			StudentID int,
			FirstName varchar(255),
			LastName varchar(255),
			Age int,
			Class int,
			Date DATE
		)`)
	} catch (error) {
		console.log(error);
	}

	const app = express();
	app.use(cors())
	// الكود المضاف
	app.use(express.static("./public"))
	// نهاية الكود المضاف
	app.use(bodyParser.urlencoded({ extended: false }))
	app.use(bodyParser.json())
	app.post("/name", async (req, res) => {
		try {
			const { StudentID, FirstName, LastName, Age, Class, date } = req.body;
			await db.exec(
				`INSERT INTO student (StudentID,FirstName,LastName,Age,Class,Date) VALUES ('${StudentID}','${FirstName}','${LastName}','${Age}','${Class}','${date}')`
			)
			return res.status(200).json({ message: "Successfully Registered" })
		} catch (error) {
			console.log(error);
			return res.status(400).json({ message: "some think happened" })
		}
	})
	app.get("/name", async (req, res) => {
		try {
			const data = await db.all(`SELECT * FROM student`)
			return res.status(200).json({ message: "Successfully Registered", data })
		} catch (error) {
			console.log(error);
			return res.status(400).json({ message: "some think happened" })
		}
	})



	app.listen(8000, () => {
		console.log("server listening ");
	})
}


startServer()




// app.get("/", (req, res) => {
// 	return res.status(200).json({ message: "express server working Successfully" })
// })




وتعديل ترتيب الملفات وملف الـ page.html إلى index.html .

ليصبح مجلد المشروع الخاص بك بالشكل التالي :

school.rar

وحتى تشغل المشروع عليك ان تقوم بفك الضغط ومن ثم فتح المجلد الناتج باستخدام vs code وبعدها تقوم بكتابة الامر التالي في موجه الاوامر :

npm install

وهذا الامر يقوم بتنزيل الحزم التي وضعتها لك في الملف والتي يعتمد عليها السيرفر حتى يعمل.

ولكن تأكد من انك في المسار الصحيح عند كتابة الأمر، ونتيجة هذا الامر سيظهر لديك ملف node module  والذي يحتوي على الحزم المطلوبة.

وبعدها تقوم بتشغيل السيرفر باستخدام الامر :

npm start

وتستطيع فتح ملف الـ html بالذهاب للرابط :

http://localhost:8000/

واضافة المستند الذي تريده.

ويمكنك التحقق من ان المستند قم تم إضافته بالذهاب إلى الرابط :

http://localhost:8000/name

والذي سيعيد لك كل العناصر المضافة إلى قاعدة البيانات.

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

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

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

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

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   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.

  • إعلانات

  • تابعنا على



×
×
  • أضف...