با سلام و وقت بخیر
بنده جدیدا وارد حوزه برنامه نویسی تحت وب شدم و میخواستم PWA به صورت سفارشی برای خودم طراحی کنم تو طراحی PWA
از زبان جاوا اسکریپت و فریمورکای react و node.js استفاده میکنم و من در واقع میخوام برنامه م قابلیت تبادل فایلای مهندسی با فرمت نرم افزارایی مثله کتیا و اتوکد و ... رو داشته باشه آیا امکان این کار با جاوا اسکریپت و pwa هست؟
ممنون میشم از دوستان اگر بنده رو راهنمایی کنید.
سلام وقت بخیر
منظورتون رو از تبادل فایل ها متوجه نشدم اگه منظورتون این هست که فایل هارو آپلود کنی از یه شخصی به شخص دیگه یا حالا روی سرور بله امکانش هست
سلام! خیلی خوشحالم که برای شروع به برنامه نویسی تحت وب، از زبان جاوااسکریپت و فریمورک React و Node.js استفاده میکنید.
در مورد سوالتون، بله، میتونید با استفاده از PWA این قابلیت رو برای برنامهتون پیاده کنید. اما باید به چند نکته توجه داشته باشید:
fetch
برای ارسال فایلها به سمت سرور استفاده کنید.البته اگه میخواید برنامهتون رو به عنوان یک نرمافزار دسکتاپ هم عرضه کنید، میتونید از Electron.js استفاده کنید. Electron.js یک فریمورک برای ساخت نرمافزارهای دسکتاپ با استفاده از HTML، CSS و JavaScript هست که توسط شرکت GitHub توسعه داده شده و برای طراحی برنامههای کراس پلتفرم (Cross-platform) استفاده میشه.متاسفانه من همینقدر از متن شمارو متوجه شدم
یه نمونه کد براتون هم مثال میزنم
میتونید از کد زیر برای ارسال فایل به سرور استفاده کنید:
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/
سرور ذخیره کنید. بعد از دریافت فایل، شما میتونید فایل رو به پایگاه داده خودتون اضافه کنید یا با دیگران به اشتراک بذارید.
با سلام و وقت بخیر
خیلی ممنونم از شما بابت وقت و توضیحاتی که گذاشتید؛ بسیار مفید بودن.
فقط من سوالی دارم از خدمت شما داشتم من میخوام از پایگاه داده های PostgreSQL و MongoDB استفاده کنم این کار به علت نوع داده هام و رابطه های موجود توی برنامه مه و از طرفی داده های زیاد و سنگینی هم خواهم داشت به نظرتون با وجود این دوتا پایگاه داده بازم از IndexedDB استفاده کنم؟
IndexedDB داده هارو روی سیستم کاربر ذخیره میکنه و به سرورمربوطنیست .
IndexedDB رویمرورگرهست
سمت سرور باید روی همون mongoDB یا PostgreSQL استفاده کنید
آیا مایل به ارسال نوتیفیکیشن و اخبار از طرف راکت هستید ؟