Dev Perfects
40 subscribers
9.23K photos
1.26K videos
468 files
13K links
بخوام خیلی خلاصه بگم
این کانال میاد مطالب کانالای خفن تو حوزه تکنولوژی و برنامه نویسی رو جمع میکنه

پست پین رو بخونید
https://t.iss.one/dev_perfects/455


ارتباط:
https://t.iss.one/HidenChat_Bot?start=936082426
Download Telegram
Forwarded from Ninja Learn | نینجا لرن (Mohammad)
💎 آپلود فایل توی باکت S3 در node.js 💎

امروز میخوام در مورد یکی از موضوعات پرکاربرد و جذاب در دنیای Node.js صحبت کنم: آپلود فایل با استفاده از باکت S3! 🎉

📦 چی هست این S3 و چرا باید ازش استفاده کنیم؟
باید بدونید S3 (Simple Storage Service) یکی از سرویس‌های معروف و محبوب آمازون وب سرویس (AWS) هست که به شما اجازه میده فایل‌هاتون رو روی فضای ابری ذخیره کنید. 🤓 این سرویس به خاطر قابلیت‌های زیادی مثل مقیاس‌پذیری بالا، امنیت و سرعت زیادش خیلی طرفدار داره.

فرض کن یه پروژه داری که توش کلی فایل (مثل عکس، ویدیو یا حتی فایل‌های بزرگ) باید ذخیره بشه. به جای اینکه این فایل‌ها رو روی سرور خودت نگه داری و مدام نگران فضای ذخیره‌سازی باشی، می‌تونی از S3 استفاده کنی تا همه چیز روی فضای ابری مدیریت بشه. 🚀

🎯 حالا چطور می‌تونیم با Node.js فایل آپلود کنیم؟
بریم سراغ اصل مطلب! 😊 برای آپلود فایل در S3 با Node.js چند تا مرحله باید انجام بدیم:

📥 نصب پکیج‌های مورد نیاز:
اول از همه باید پکیج‌های aws-sdk و multer رو نصب کنیم. aws-sdk کتابخانه‌ای هست که AWS رو به Node.js متصل می‌کنه و multer هم برای مدیریت فایل‌های آپلودی استفاده می‌شه.

npm install aws-sdk multer

کانفیگ AWS:
حالا باید کلاینت AWS رو کانفیگ کنیم. برای این کار نیاز به accessKeyId و secretAccessKey دارید که باید از کنسول AWS بگیرید.

const AWS = require('aws-sdk');

AWS.config.update({
    accessKeyId: 'YOUR_ACCESS_KEY_ID',
    secretAccessKey: 'YOUR_SECRET_ACCESS_KEY',
    region: 'YOUR_REGION'
});

const s3 = new AWS.S3();

🔧 ساختن تابع آپلود:
حالا بیایم یه تابع ساده برای آپلود فایل بسازیم. این تابع فایل رو از کلاینت میگیره و به S3 آپلود می‌کنه:

const uploadFile = (file) => {
    const params = {
        Bucket: 'YOUR_BUCKET_NAME',
        Key: file.originalname,
        Body: file.buffer
    };

    return s3.upload(params).promise();
};

🧾 مدیریت فایل‌های آپلودی:
از multer برای گرفتن فایل‌ها از فرم استفاده می‌کنیم. به این شکل که فایل‌ها به عنوان buffer به تابع uploadFile پاس داده می‌شن:

const multer = require('multer');
const upload = multer();

app.post('/upload', upload.single('file'), async (req, res) => {
    try {
        const result = await uploadFile(req.file);
        res.send(result);
    } catch (error) {
        res.status(500).send(error);
    }
});

توی این کد، وقتی کاربر فایلی رو آپلود می‌کنه، ما از طریق multer اون فایل رو می‌گیریم و با استفاده از aws-sdk اونو به S3 ارسال می‌کنیم.

💡 نکات اضافی و پیشنهادها

🛡 ایمن‌سازی: حواستون باشه که accessKeyId و secretAccessKey رو توی کد قرار ندید. به جای اون‌ها از متغیرهای محیطی (environment variables) استفاده کنید.

📟 استفاده از presigned URLs: اگه می‌خواید کاربر مستقیماً از کلاینت خودش فایل رو آپلود کنه، می‌تونید از presigned URLs استفاده کنید که امنیت و عملکرد بهتری داره.

🔬 مانیتورینگ و مدیریت فایل‌ها: با استفاده از امکاناتی مثل CloudWatch یا S3 Events می‌تونید عملیات‌های مختلف روی فایل‌ها رو مانیتور کنید.
امیدوارم این آموزش به دردتون بخوره و بتونید به راحتی فایل‌هاتون رو با Node.js توی S3 آپلود کنید.


امید وارم براتون مفید بوده باشه :) ❤️

#node.js #s3 #aws #clound_storage

@ninja_learn_ir
Forwarded from Code Module | کد ماژول (genix)
با Node-Schedule آشنا بشید 💀

Node-Schedule یک پکیج برنامه ریزی قدرتمند و انعطاف پذیر مثل cron برای Node.js هست که به دولوپر ها این امکان رو میده، تا وظایف برنامه ریزی شده رو به راحتی تنظیم و مدیریت کنن. این یک API ساده و در عین حال قوی ارائه میکنه که هم از زمان‌بندی به سبک cron و هم از اجرای یک‌بار کار پشتیبانی میکنه، و اون رو به گزینه‌ای برای مدیریت وظایف برنامه‌ریزی‌شده در برنامه‌های Node.js تبدیل میکنه.

از این پکیج چه استفاده ای میشه؟ 🤔

Node-Schedule به گونه ای طراحی شده که زمان بندی کار رو ساده کنه. این به دولوپر ها اجازه میده تا کارها رو بر اساس نحو آشنای cron، که زمان اجرای وظایف مشخص میکنه، برنامه ریزی کنن. به عنوان مثال، میتونید یک کار رو برای اجرا هر روز در یک زمان خاص، هر ساعت یا حتی الگوهای پیچیده تر مثل هر سه شنبه دوم ماه برنامه ریزی کنید. این کتابخانه همچنین از گزینه‌های زمان‌بندی ساده‌تر مثل تنظیم یک کار برای اجرا در یک تاریخ و زمان خاص پشتیبانی میکنه.

یکی از ویژگی های برجسته Node-Schedule توانایی اون در انجام وظایف تکراری و تکالیف با سهولت یکسان هست. همچنین میتونه تفاوت‌های منطقه زمانی رو مدیریت کنه و اطمینان حاصل کنه که وظایف شما بدون توجه به مکان سرور در زمان‌های صحیح اجرا میشه. علاوه بر این، Node-Schedule به شما این امکان رو میده که کارها رو به صورت پویا لغو یا زمان بندی مجدد کنید و به شما کنترل کامل بر زمان بندی وظایف برنامه خود رو میده.

Node-Schedule یک ابزار ضروری برای دولوپرهایی هست، که نیاز به مدیریت و اجرای وظایف برنامه ریزی شده در برنامه های خودشون رو دارن. Node-Schedule با API منعطف، پشتیبانی شبیه به cron و توانایی انجام وظایف تکراری و یکباره، فرآیند زمان‌بندی کار رو ساده میکنه. برای کسب اطلاعات بیشتر به ریپازیتوری این پکیج مراجعه کنید.

#node_schedule
@CodeModule
Please open Telegram to view this post
VIEW IN TELEGRAM
💎 معرفی SSE در Node.js 💎

مروز می‌خوایم درباره SSE یا Server-Sent Events توی Node.js صحبت کنیم.

حالا SSE چیه؟ 🤔
خب SSE یکی از تکنیک‌های وب هست که به سرور اجازه میده به طور یکطرفه اطلاعات رو به کلاینت بفرسته. یعنی سرور می‌تونه داده‌ها رو به مرور زمان به کلاینت بفرسته بدون اینکه کلاینت درخواست خاصی بده.

چرا از SSE استفاده کنیم؟ 💡
1⃣ ساده و راحت:
برای پیاده‌سازی SSE به کد کمتری نسبت به WebSocket نیاز داریم و ساده‌تره.

2⃣ بروزرسانی‌های زنده:
می‌تونی اطلاعات مثل نوتیفیکیشن‌ها یا اخبار رو به صورت زنده به کاربران ارسال کنی.

3⃣ پشتیبانی از مرورگرها:
اکثر مرورگرهای مدرن از SSE پشتیبانی می‌کنند.

چطور از SSE در Node.js استفاده کنیم؟ 🚀
برای استفاده از SSE توی Node.js می‌تونی به راحتی یه سرور ساده راه بندازی. مثلاً:

const express = require('express')
const app = express()

app.get('/events', (req, res) => {
res.setHeader('Content-Type', 'text/event-stream')
res.setHeader('Cache-Control', 'no-cache')
res.setHeader('Connection', 'keep-alive')

setInterval(() => {
const data = new Date().toLocaleTimeString()
res.write(`data: ${data}\n\n`)
}, 1000)
})

app.listen(3000, () => {
console.log('Server running on https://localhost:3000')
})


توضیحات کد 📝
- با استفاده از Express یه روت /events تعریف کردیم که داده‌ها رو به صورت زنده ارسال می‌کنه.
- سرور با استفاده از setInterval هر یک ثانیه زمان فعلی رو به کلاینت ارسال می‌کنه.

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

const eventSource = new EventSource('/events')

eventSource.onmessage = (event) => {
console.log('New message:', event.data)
}

جمع‌بندی 🎯
فهمیدیم SSE یکی از روش‌های عالی برای ارسال داده‌ها به صورت زنده از سرور به کلاینت در Node.js هست. با استفاده از این تکنیک می‌تونی تجربه کاربری بهتری رو برای اپلیکیشن‌هات ایجاد کنی.

امید وارم مفید بوده باشه :)

#sse #js #node.js


@ninja_learn_ir
Forwarded from ASafaeirad
Forwarded from ASafaeirad