aylar
11 ماه پیش توسط aylar مطرح شد
5 پاسخ

تبادل فایل های نرم افزارهای مهندسی در pwa

با سلام و وقت بخیر
بنده جدیدا وارد حوزه برنامه نویسی تحت وب شدم و میخواستم PWA به صورت سفارشی برای خودم طراحی کنم تو طراحی PWA
از زبان جاوا اسکریپت و فریمورکای react و node.js استفاده میکنم و من در واقع میخوام برنامه م قابلیت تبادل فایلای مهندسی با فرمت نرم افزارایی مثله کتیا و اتوکد و ... رو داشته باشه آیا امکان این کار با جاوا اسکریپت و pwa هست؟
ممنون میشم از دوستان اگر بنده رو راهنمایی کنید.


ثبت پرسش جدید
میکائیل
تخصص : برنامه نویسی سمت سرور و کلاینت
@FullStack 11 ماه پیش مطرح شد
0

سلام وقت بخیر
منظورتون رو از تبادل فایل ها متوجه نشدم اگه منظورتون این هست که فایل هارو آپلود کنی از یه شخصی به شخص دیگه یا حالا روی سرور بله امکانش هست


Arshiamohammadei
تخصص : وب و هوش مصنوعی
@Arshiamohammadei 11 ماه پیش مطرح شد
0

سلام! خیلی خوشحالم که برای شروع به برنامه نویسی تحت وب، از زبان جاوااسکریپت و فریمورک React و Node.js استفاده می‌کنید.

در مورد سوالتون، بله، می‌تونید با استفاده از PWA این قابلیت رو برای برنامه‌تون پیاده کنید. اما باید به چند نکته توجه داشته باشید:

  • با توجه به اینکه فایل‌های مهندسی حجیم هستند، باید از IndexedDB برای ذخیره این فایل‌ها در مرورگر کاربر استفاده کنید. IndexedDB یک پایگاه داده مرورگری است که امکان ذخیره و بازیابی داده‌های بزرگ را فراهم می‌کند.
  • برای فرستادن فایل‌های مهندسی از طریق PWA، باید از APIهای مرورگری استفاده کنید. به عنوان مثال، می‌تونید از fetch برای ارسال فایل‌ها به سمت سرور استفاده کنید.
  • بعد از دریافت فایل‌های مهندسی، باید برنامه‌تون قابلیت نمایش این فایل‌ها رو داشته باشه. برای این کار، می‌تونید از کتابخانه‌هایی مثل Three.js یا Babylon.js استفاده کنید.

البته اگه می‌خواید برنامه‌تون رو به عنوان یک نرم‌افزار دسکتاپ هم عرضه کنید، می‌تونید از Electron.js استفاده کنید. Electron.js یک فریمورک برای ساخت نرم‌افزارهای دسکتاپ با استفاده از HTML، CSS و JavaScript هست که توسط شرکت GitHub توسعه داده شده و برای طراحی برنامه‌های کراس پلتفرم (Cross-platform) استفاده می‌شه.متاسفانه من همینقدر از متن شمارو متوجه شدم


Arshiamohammadei
تخصص : وب و هوش مصنوعی
@Arshiamohammadei 11 ماه پیش مطرح شد
0

یه نمونه کد براتون هم مثال میزنم
می‌تونید از کد زیر برای ارسال فایل به سرور استفاده کنید:

async function uploadFile(file) {
  const formData = new FormData();
  formData.append('file', file);

  try {
    const response = await fetch('/upload', {
      method: 'POST',
      body: formData
    });

    if (!response.ok) {
      throw new Error(`HTTP error! Status: ${response.status}`);
    }

    return response.json();
  } catch (e) {
    console.error('Error:', e);
  }
}

در این کد، fetch برای ارسال فایل به آدرس /upload استفاده شده است. با اضافه کردن فایل به FormData، می‌تونید فایل رو به درخواست اضافه کنید. در نهایت، با استفاده از response.json()، می‌تونید داده‌های ارسال شده توسط سرور رو دریافت کنید.

در سمت سرور نیز باید APIی برای دریافت فایل و ذخیره در پایگاه داده بنویسید. در Node.js، شما می‌تونید از کتابخانه Multer برای دریافت فایل و ذخیره در سرور استفاده کنید. برای نمونه، می‌تونید از کد زیر استفاده کنید:

const express = require('express');
const multer  = require('multer');
const app = express();
const upload = multer({ dest: 'uploads/' });

app.post('/upload', upload.single('file'), (req, res) => {
  const file = req.file;

  // Do something with the file (e.g. save to database)

  res.json({ success: true });
});

app.listen(3000, () => {
  console.log('Server started on port 3000');
});

با استفاده از multer، می‌تونید فایل رو دریافت و در پوشه uploads/ سرور ذخیره کنید. بعد از دریافت فایل، شما می‌تونید فایل رو به پایگاه داده خودتون اضافه کنید یا با دیگران به اشتراک بذارید.


aylar
@r.nedaei96.eng 11 ماه پیش مطرح شد
0

با سلام و وقت بخیر
خیلی ممنونم از شما بابت وقت و توضیحاتی که گذاشتید؛ بسیار مفید بودن.
فقط من سوالی دارم از خدمت شما داشتم من میخوام از پایگاه داده های PostgreSQL و MongoDB استفاده کنم این کار به علت نوع داده هام و رابطه های موجود توی برنامه مه و از طرفی داده های زیاد و سنگینی هم خواهم داشت به نظرتون با وجود این دوتا پایگاه داده بازم از IndexedDB استفاده کنم؟


NoBody
تخصص : برنامه نویس و توسعه دهنده
@NoBodyMax 11 ماه پیش مطرح شد
0

@r.nedaei96.eng

IndexedDB داده هارو روی سیستم کاربر ذخیره میکنه و به سرور‌مربوط‌نیست .
IndexedDB روی‌مرورگر‌هست

سمت سرور باید روی همون mongoDB یا PostgreSQL استفاده کنید


برای ارسال پاسخ لازم است وارد شده یا ثبت‌نام کنید

ورود یا ثبت‌نام