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

السؤال

نشر

السلام عليكم.

قمت بإنشاء مشروع قمت فيه بتنفيذ json-server (implementing).

بحيث:

في البداية قمت بتنزيل json server

ثم قمت بإنشاء db.json

ثم قمت بطلب البيانات (api request)

"scripts": {
    "start": "react-scripts start",
    "json-server": "json-server --watch db.json --port 5000",
    "test": "react-scripts test",
    "eject": "react-scripts eject",
    "predeploy" : "npm run build",
    "deploy" : "gh-pages -d build"
  },

مثلما تلاحظون يوجد port5000 .

كيف يمكنني رفع هذا المشروع على منصة netlify.

مع العلم أنني قمت برفع المشروع بالطريقة الكلاسيكية (npm build) لكن دون أن تظهر المنتجات.

الرابط: https://affariyett.netlify.app

شكرا لكم.

 

Recommended Posts

  • 0
نشر

لا يمكنك تشغيل Json Server على استضافة Netlify ولكن يمكنك استخدام الـ Netlify Functions بدلاً من ذلك.

Netlify Functions هي خدمة تقدمها شركة Netlify لتشغيل الأكواد الخاصة بك على شكل API endpoints، وهي تعتبر جزء من خدمات serverless functions. وتعتبر Netlify Functions طريقة لنشر الأكواد التي تعمل على الجانب الخادم كـ API endpoints، حيث يتم تشغيلها تلقائيًا عند حدوث حدث معين، وتقوم بمعالجة الأكواد التي تعمل على الجانب الخادم، ثم تتوقف حتى يحدث حدث آخر.

وهذا نقاش حول الموضوع على الموقع الرسمي لـ Netlify

ويمكنك الوصول إلى توثيق Netlify Functions الرسمي من هنا

  • 0
نشر

أنصحك بتعلم استعمال ال docker، فهو يسهل هذه الأمور كثيراً حيث أنه هناك الكثير من الاستضافات المجانية الخاصة به، و ميزاته أنه سيعمل على السيرفر تماماً كما عمل على جهازك.

و عندها لن يوجد فرق بين تقنية و أخرى، أي يمكنك استعمال أي تقنية ترغب بها، سواء json server أو أي شيء آخر.

مثلاً ستجد موقع مثل oracle يقدم لك خدمة استضافة مجانية لما ندعوه بال containers و هي مثل حافظة تغلف المشروع و فيها البيئة اللازمة لتشغيله و كل شيء، بالتالي تصبح عملية رفع الكود مجرد عملية رفع لملف واحد فقط!

يمكنك الوصول إلى هذه الخدمة المجانية من هنا.

  • 0
نشر

أنصحك باستخدام استضافة Railway.app فهي سهلة للغاية، ويمكنك رفع المشروع من خلال مستودع الـ GitHub وإضافة متغيرات البيئة وغيرها وسيعمل المشروع في ثوانٍ، وتستطيع إضافة قاعدة بيانات.

todos-gif.gif.019894a06ea03a20094ed9ea7e0f17d7.gif

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

CleanShot_2022-02-01_at_01.gif.a4ada9103c56c59f36d553890460d75e.gif

وهناك منفذ أوامر خاص بالإستضافة CLI يمكنك العمل من خلاله إذا أردت.

CLIexample_fiflvb.gif.5857bfdb7d4b09a1c7c556d314c95692.gif

ويمكنك قراءة المستندات الرسمية حيث بها شرح وافي، أو تستطيع البحث على اليوتيوب بالتالي deploy json server on railway أو How to deploy on railway

وأيضًا هناك استضافة أخرى باسم render وهي جيدة أيضًا.

  • 0
نشر

إذا كنت تريد استخدام Netlify   يمكنك استخدام الـ Netlify Functions لتنفيذ المطلوب ومثال على كيفية رفع مشروع json-server على Netlify، يجب عليك اتخاذ الخطوات التالية:

أضف ملف netlify.toml الذي يحتوي على الإعدادات التالية:

[build]
  command = "npm run build"
  publish = "build"

[dev]
  command = "npm run start"  # سيتم تشغيله عند تشغيل موقعك

[[redirects]]
  from = "/*"
  to = "/index.html"
  status = 200

[functions]
  directory = "functions" # يحتوي على ملف lambda لتشغيل json-server

أضف ملف functions/lambda.js يحتوي على:

const jsonServer = require('json-server')
const server = jsonServer.create()
const router = jsonServer.router('db.json')
const middlewares = jsonServer.defaults()

server.use(middlewares)
server.use(jsonServer.rewriter({
  '/api/*': '/$1'
}))
server.use(router)
server.listen(5000, () => {
  console.log('JSON Server is running')
})

قم بتغيير المنفذ في "start" script إلى منفذ آخر مثل 5000

قم بنشر المشروع على Netlify

سيقوم Netlify بتشغيل الوظيفة lambda.js التي بدورها ستقوم بتشغيل json-server على المنفذ 5000.

ستتمكن من الوصول إلى البيانات من خلال https://your-site.netlify.app/api/posts

هذا ما يجب عليك فعله لرفع مشروع json-server على Netlify. 

يمكنك الإطلاع على المصادر التي تم ذكرها في أول تعليق للمزيد من المعلومات

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

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

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

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

  • إعلانات

  • تابعنا على



×
×
  • أضف...