Forwarded from LearnPOV | لرن پی او وی
👾 ساخت ربات تلگرام با JavaScript 🤖
برای ساخت ربات تلگرام با جاوا اسکریپت، میتونیم از کتابخانه
مزایای استفاده از این کتابخانه ✅
➊ سادگی و سرعت در توسعه: با چند خط کد میتونید ربات تلگرام خودتونو بسازید.
➋ پشتیبانی از API تلگرام: به تمامی امکانات API تلگرام دسترسی دارید.
➌ منابع زیاد و مستندات خوب: یادگیری و توسعه با این کتابخانه به دلیل پشتیبانی مستندات کامل خیلی سادس.
نحوه نصب کتابخانه 🔰
اول از همه باید Node.js رو سیستمون نصب باشه !
ساخت یک ربات ساده تلگرام 🚀
توی این مثال میخوایم یه ربات بسازیم که به دستور
1️⃣ گرفتن توکن API از BotFather
2️⃣ نوشتن کد ربات
3️⃣ اجرای ربات
حالا ربات شما فعاله و اگر در تلگرام دستور
🌐 داکیومنت رسمی node-telegram-bot-api
امیدوارم از این مطلب لذت برده باشید، با ریاکشنای خودتون بهمون انرژی بدید ❤️🔥
برای ساخت ربات تلگرام با جاوا اسکریپت، میتونیم از کتابخانه
node-telegram-bot-api استفاده کنیم که یکی از محبوبترین راهها برای ساخت ربات تلگرام با Node.js هستش و به شما این اجازه رو میده تا به راحتی رباتهای تعاملی ایجاد کنید 💥مزایای استفاده از این کتابخانه ✅
➊ سادگی و سرعت در توسعه: با چند خط کد میتونید ربات تلگرام خودتونو بسازید.
➋ پشتیبانی از API تلگرام: به تمامی امکانات API تلگرام دسترسی دارید.
➌ منابع زیاد و مستندات خوب: یادگیری و توسعه با این کتابخانه به دلیل پشتیبانی مستندات کامل خیلی سادس.
نحوه نصب کتابخانه 🔰
اول از همه باید Node.js رو سیستمون نصب باشه !
حالا با استفاده از npm کتابخانه node-telegram-bot-api رو با استفاده از دستور زیر نصب کنید 🔻npm install node-telegram-bot-api
ساخت یک ربات ساده تلگرام 🚀
توی این مثال میخوایم یه ربات بسازیم که به دستور
/start جواب میده و به کاربر خوشامد میگه.1️⃣ گرفتن توکن API از BotFather
اول باید از BotFather در تلگرام توکن API خود را دریافت کنید. ( آموزش )
2️⃣ نوشتن کد ربات
بعد از دریافت توکن، میتونید کد ربات رو با جاوا اسکریپت بنویسید.
برای این کار یک فایل با نام bot.js ایجاد میکنیم و کد زیر رو داخلش قرار میدیم 🔻const TelegramBot = require('node-telegram-bot-api');
// ایجاد شیء ربات با توکن
const bot = new TelegramBot('YOUR_BOT_TOKEN', { polling: true });
// پاسخ به دستور /start
bot.onText(/\/start/, (msg) => {
bot.sendMessage(msg.chat.id, 'Hey, cooly coder 😎');
});3️⃣ اجرای ربات
برای اجرای ربات کافیه با Node.js فایلی که ساختیم رو اجرا کنیم 🔻
node bot.js
حالا ربات شما فعاله و اگر در تلگرام دستور
/start زو ارسال کنید برای ربات، پیام خوشامدگویی رو دریافت میکنید.این ربات یک مثال خیلی ساده بود و خودتون میتونید با افزودن ویژگیهای بیشتر مثل پاسخ به پیامها یا ارسال data به API، رباتهای خفن تری بسازید 💥
🌐 داکیومنت رسمی node-telegram-bot-api
#️⃣ #bot #nodejs #libarary
🚀 @coolycode
Forwarded from Woland's Linux Journal (Woland)
This media is not supported in your browser
VIEW IN TELEGRAM
میدونستین در کمتر از ۱۵۰ خط کد جاوااسکریپت، بدون هیچ وابستگی و بستهای از npm میتونین اینجور بازیهایی رو بسازین؟
در واقع این نشون میده که فقط با نودجیاس و بدون نیاز به blessed یا terminal kit میشه هر نوع برنامه ترمینالی ساخت.
چون اگر بتونیم input و state و output رو کنترل کنیم هر کاری میشه انجام داد.
این یه نمونه خیلی سادهس که امروز نوشتم و توی اون شما باید از زامبیها فرار کنید و الماس رو بگیرین.
گدرت جاوااسکریپت 💪😁
اگه خواستین بگین تا کدش و توضیحاتشو براتون بذارم.
#آموزش #جاوااسکریپت #بازی
#game #javascript #nodejs
در واقع این نشون میده که فقط با نودجیاس و بدون نیاز به blessed یا terminal kit میشه هر نوع برنامه ترمینالی ساخت.
چون اگر بتونیم input و state و output رو کنترل کنیم هر کاری میشه انجام داد.
این یه نمونه خیلی سادهس که امروز نوشتم و توی اون شما باید از زامبیها فرار کنید و الماس رو بگیرین.
اگه خواستین بگین تا کدش و توضیحاتشو براتون بذارم.
#آموزش #جاوااسکریپت #بازی
#game #javascript #nodejs
Forwarded from LearnPOV | لرن پی او وی
●● ماژول fs در Node.js چیست ؟ ●●
ماژول fs (فایل سیستم) در Node.js برای کار با فایلها و دایرکتوریها استفاده میشود. این ماژول امکان خواندن، نوشتن، حذف و مدیریت فایلها رو برای شما فراهم میکند.
متدهای مهم file system 🚀
ماژول fs (فایل سیستم) در Node.js برای کار با فایلها و دایرکتوریها استفاده میشود. این ماژول امکان خواندن، نوشتن، حذف و مدیریت فایلها رو برای شما فراهم میکند.
متدهای مهم file system 🚀
➊ fs.readFile(path, callback)🌐 مشاهده کامل متد های fs
محتوای فایل رو میخونه و در صورت موفقیت آمیز بودن، اون رو به کالبک برمیگردونه.
➋ fs.writeFile(path, data, callback)
محتوای پارامتر data رو داخل فایل مینویسه و فایل رو بازنویسی میکنه.
➌ fs.existsSync(path)
به صورت همزمان بررسی میکنه که آیا فایل یا دایرکتوری وجود دارد یا خیر.
➍ fs.unlink(path, callback)
برای حذف فایل ها بهکار میره و میتونید باهاش هر فایلی رو پاک بکنید.
➎ fs.rename(oldPath, newPath, callback)
نام یا مکان یک فایل رو تغییر میده.
➏ fs.mkdir(path, callback)
یک فولدر ( دایرکتوری ) جدید ایجاد میکنه.
#️⃣ #WhatsThat | #nodejs #fs
🚀 @coolycode
Forwarded from LearnPOV | لرن پی او وی
●● نودجیاس ( Node.js ) چیست ؟ ●●
نودجیاس یک محیط اجرایی سرور-محور برای اجرای کدهای جاوااسکریپتیه که به توسعهدهندگان این امکان رو میده تا به جای مرورگر، از جاوااسکریپت در سمت سرور استفاده کنند.
ویژگیهای کلیدی Node.js ✅
📊 مقیاسپذیری بالا
🚀 سرعت بالا
🔺 تکپردازشی، ولی بسیار کارا
📦 مدیریت packageها با NPM
⭕ غیر بلاک کننده ( Non-blocking )
🌐 وبسایت رسمی Node.js
⬇️ صفحه دانلود Node.js
امیدوارم حسابی لذت برده باشید، توی پست های بعدی متد های بیشتری از Node.js رو با هم دیگه بررسی میکنیم ⚡
نودجیاس یک محیط اجرایی سرور-محور برای اجرای کدهای جاوااسکریپتیه که به توسعهدهندگان این امکان رو میده تا به جای مرورگر، از جاوااسکریپت در سمت سرور استفاده کنند.
ویژگیهای کلیدی Node.js ✅
📊 مقیاسپذیری بالا
معماری Node.js به گونهای طراحی شده که برای برنامههایی که نیاز به مدیریت تعداد زیادی از ارتباطات همزمان (مثل APIها و اپلیکیشنهای بلادرنگ) دارند، بسیار مناسبه. به همین دلیل Node.js برای ساخت برنامههایی مثل چتهای بلادرنگ، وبسرویسهای API و برنامههای اشتراکگذاری فایل بسیار محبوب است.
🚀 سرعت بالا
به دلیل استفاده Node.js از موتور V8 گوگل کروم که کد جاوااسکریپت رو به سرعت به کد ماشین تبدیل میکنه، از سرعت بالایی برخورداره. همچنین، با استفاده از معماری غیرهمزمان، درخواستها به صورت کارآمد و بدون نیاز به انتظار مدیریت میشوند.
🔺 تکپردازشی، ولی بسیار کارا
نودجیاس تنها از یک رشته (thread) برای اجرای کد استفاده میکند، اما به دلیل None-Blocking بودن اون، عملیات سنگین رو به روشی بهینه مدیریت میکنه و این باعث میشه که مصرف منابع کم باشه و سرورها به سرعت به درخواستها پاسخ دهند.
📦 مدیریت packageها با NPM
نودجیاس با یک سیستم package manager به نام NPM (Node Package Manager) همراه است که بزرگترین مخزن بستههای نرمافزاری متنباز است. با NPM، توسعهدهندگان میتوانند به راحتی کتابخانههای مختلف را نصب و در پروژههای خود استفاده کنند.
⭕ غیر بلاک کننده ( Non-blocking )
نودجیاس از یک مدل ورودی/خروجی (I/O) غیربلاککننده و رویداد-محور استفاده میکند. این بدان معناست که عملیات ورودی/خروجی (مثل خواندن و نوشتن فایلها یا درخواستهای شبکه) بدون مسدود کردن فرآیند اصلی انجام میشود. این ویژگی باعث میشود Node.js بتواند هزاران درخواست را همزمان مدیریت کند بدون اینکه نیاز به منتظر ماندن برای یک عملیات I/O باشد.
🌐 وبسایت رسمی Node.js
⬇️ صفحه دانلود Node.js
#️⃣ #WhatsThat #nodejs #backend
🚀 @coolycode
Forwarded from LearnPOV | لرن پی او وی (Mohammad hossein)
●● معرفی فریم ورک Express.js ●●
یک فریمورک سبک، سریع و محبوب برای ساخت بکند اپلیکشن اپلیکیشنهای وب و توسعه Apiها با استفاده از Node.js است.
ویژگی های کلیدی ✅
توی این ویدیو یه پروژه ساده با اکسپرس ایجاد کردیم 🚀
یک فریمورک سبک، سریع و محبوب برای ساخت بکند اپلیکشن اپلیکیشنهای وب و توسعه Apiها با استفاده از Node.js است.
ویژگی های کلیدی ✅
➊ سادگی : یادگیری و استفاده از Express.js بسیار آسان است.
➋ سرعت : به دلیل ساختار سبک و بهینه، اپلیکیشنهای ساخته شده با Express.js بسیار سریع هستند.
➌ انعطافپذیری : این فریم ورک به شما آزادی زیادی برای ساخت اپلیکیشنهای دلخواه میدهد.
➍ جامعه بزرگ : یک جامعه بزرگ از توسعهدهندگان وجود داره که از Express.js استفاده میکنند.
توی این ویدیو یه پروژه ساده با اکسپرس ایجاد کردیم 🚀
#framework #nodejs #backend
Channel | Group | YouTube
Forwarded from LearnPOV | لرن پی او وی (Mohammad hossein)
This media is not supported in your browser
VIEW IN TELEGRAM
●●سرو کردن فایلهای HTML در Express.js ●●
توی این ویدیو بهتون یاد دادم که چجوری میتونید خیلی ساده فایل های HTMLای سرو بکنید توی اکسپرس و بفرستید سمت کلاینت.
🌐 مشاهده کامل ویدیو در یوتوب
اگه به این سبک پستا علاقه داری به چنلمون یه سر بزن 🚀
〰️〰️〰️〰️〰️〰️〰️〰️〰️
توی این ویدیو بهتون یاد دادم که چجوری میتونید خیلی ساده فایل های HTMLای سرو بکنید توی اکسپرس و بفرستید سمت کلاینت.
پ.ن : اگر نیاز داشته باشید که یه وبسایت استتیک بسازید با اکسپرس میتونید از این روش استفاده کنید 🚀
🌐 مشاهده کامل ویدیو در یوتوب
#️⃣ #nodejs #youtube #backend
〰️〰️〰️〰️〰️〰️〰️〰️〰️
Channel | Group | YouTube
Forwarded from FullstacksJS — Academy
قسمت چهارم ماب ریویو: معماری نرم افزار و DDD
تو این جلسه یک پروژه NestJS رو با هم ریویو میکنیم.
مشاهده ویدئو
اگر علاقه دارید میتونید کدهاتون رو برای من بفرستید تا توی این جلسهها با همدیگه ریویوشون کنیم.
مباحث
00:00 ماب ریویو چیه؟
01:06 درباره پروژه؟
02:32 پارادایم Reactive Programming
03:55 معماری های Hexagonal
05:39 تعریف و انواع وابستگی توی معماری
06:55 مفهوم Dependency Inversion
13:41 مفهوم Dependency Injection
17:35 استفاده این مفاهیم توی معماری
20:08 لایه Domain توی معماری Clean
21:10 مزیت نام گذاری روی معماریها و پترنها
21:57 Domain Driven Design چیه؟
34:24 معرفی منابع برای DDD
37:53 پرکیتس ها و اهمیت Communication
42:39 مسئولیت لایه Application
44:43 آنتی پرتن Anemic domain
46:48 مفهوم Ubiquitous language و Bounded Context
53:16 مفاهیم Strategic design و Tactical Design
54:29 فرق بین Value Object و Entity
1:00:42 مفهوم Domain Event
1:02:00 مفهوم Aggregate root
1:05:34 استفاده از این مفاهیم تو NestJS
1:06:53 مفهوم persistence ignorance
1:09:06 بی اهمیت بودن ابزارها و اهمیت نیاز بیزینس
1:12:03 چرا مقایسه ابزارها درست نیست
1:14:29 کجا باید از DDD استفاده کنیم؟
1:15:41 چرا کسب تجربه توی DDD سخته؟
1:16:34 پترن CQRS
1:19:26 چرا نباید همه جا از پترنها و معماریها استفاده کنیم؟
✦ ماب ریویو چیه؟
✦ سورس کد
✦ اضافه کردن به تقویم
#mobreview #nestjs #cqrs #designpatterns #ddd #cleanarchitecture #hexagonarchitecture #mongodb #typescript #nodejs
تو این جلسه یک پروژه NestJS رو با هم ریویو میکنیم.
مشاهده ویدئو
اگر علاقه دارید میتونید کدهاتون رو برای من بفرستید تا توی این جلسهها با همدیگه ریویوشون کنیم.
مباحث
00:00 ماب ریویو چیه؟
01:06 درباره پروژه؟
02:32 پارادایم Reactive Programming
03:55 معماری های Hexagonal
05:39 تعریف و انواع وابستگی توی معماری
06:55 مفهوم Dependency Inversion
13:41 مفهوم Dependency Injection
17:35 استفاده این مفاهیم توی معماری
20:08 لایه Domain توی معماری Clean
21:10 مزیت نام گذاری روی معماریها و پترنها
21:57 Domain Driven Design چیه؟
34:24 معرفی منابع برای DDD
37:53 پرکیتس ها و اهمیت Communication
42:39 مسئولیت لایه Application
44:43 آنتی پرتن Anemic domain
46:48 مفهوم Ubiquitous language و Bounded Context
53:16 مفاهیم Strategic design و Tactical Design
54:29 فرق بین Value Object و Entity
1:00:42 مفهوم Domain Event
1:02:00 مفهوم Aggregate root
1:05:34 استفاده از این مفاهیم تو NestJS
1:06:53 مفهوم persistence ignorance
1:09:06 بی اهمیت بودن ابزارها و اهمیت نیاز بیزینس
1:12:03 چرا مقایسه ابزارها درست نیست
1:14:29 کجا باید از DDD استفاده کنیم؟
1:15:41 چرا کسب تجربه توی DDD سخته؟
1:16:34 پترن CQRS
1:19:26 چرا نباید همه جا از پترنها و معماریها استفاده کنیم؟
✦ ماب ریویو چیه؟
✦ سورس کد
✦ اضافه کردن به تقویم
#mobreview #nestjs #cqrs #designpatterns #ddd #cleanarchitecture #hexagonarchitecture #mongodb #typescript #nodejs
YouTube
Mob Review 4: معماری نرم افزار و DDD
توی این جلسه یک پروژه تو این جلسه یک پروژه NestJS رو با هم ریویو میکنیم.
درباره ماب ریویو:
ماب ریویو یه رویداد دوستانه و خودمونی برای انتقال تجربه دانشه.
توی این رویداد دور هم جمع میشیم تا یک سورس کد رو با هم ریویو کنیم و درباره پرکتیسهای بهتر و دلایلش…
درباره ماب ریویو:
ماب ریویو یه رویداد دوستانه و خودمونی برای انتقال تجربه دانشه.
توی این رویداد دور هم جمع میشیم تا یک سورس کد رو با هم ریویو کنیم و درباره پرکتیسهای بهتر و دلایلش…
Forwarded from ASafaeirad
Forwarded from ASafaeirad
Node.JS Typescript support (kinda) is now enabled by default.
https://github.com/nodejs/node/pull/56350
#nodejs #news
https://github.com/nodejs/node/pull/56350
#nodejs #news
GitHub
module: unflag --experimental-strip-types by marco-ippolito · Pull Request #56350 · nodejs/node
It's time to enable it by default to catch some more bugs, currently there are no open issues.
I think it's a semver minor change.
Fixes: nodejs/typescript#17
@nodejs/tsc for visibi...
I think it's a semver minor change.
Fixes: nodejs/typescript#17
@nodejs/tsc for visibi...
Forwarded from Code Module | کد ماژول (genix)
میدونستی با Node.js میتونی انیمیشن های جذابی توی ترمینال بسازی؟ 🚀
یکی از کارهایی که میتونید به عنوان سرگرمی انجام بدید، ساخت انیمیشن های ترمینال هست. مقاله vladimirvovk یک راهنمای جامع در مورد چگونگی انجام این کار هست. این مقاله نحوه ساخت digital rain که شبیه به Matrix هست رو نشون میده که با استفاده از process.stdout، اون رو میسازه(البته به صورت کوچیک شده). همچنین یک مقدمه کوتاهی از ANSIS هم داره که کار رو برای ساخت رنگ ها ساده میکنه و میتونید از اون توی انیمیشن هاتون استفاده کنید.
برای اطلاعات بیشتر به این مقاله مراجعه کنید.
#nodejs
@CodeModule
یکی از کارهایی که میتونید به عنوان سرگرمی انجام بدید، ساخت انیمیشن های ترمینال هست. مقاله vladimirvovk یک راهنمای جامع در مورد چگونگی انجام این کار هست. این مقاله نحوه ساخت digital rain که شبیه به Matrix هست رو نشون میده که با استفاده از process.stdout، اون رو میسازه(البته به صورت کوچیک شده). همچنین یک مقدمه کوتاهی از ANSIS هم داره که کار رو برای ساخت رنگ ها ساده میکنه و میتونید از اون توی انیمیشن هاتون استفاده کنید.
برای اطلاعات بیشتر به این مقاله مراجعه کنید.
#nodejs
@CodeModule
DEV Community
Terminal Animations with Node.js
Node.js has the process object with stdout property which is a stream connected to stdout. Using the...
Forwarded from Node Unique
🔤 @Code_Unique
Please open Telegram to view this post
VIEW IN TELEGRAM
Forwarded from Code Module | کد ماژول (genix)
Trust Proxy توی Express.js چیه و دقیقاً چه کاری میکنه؟ 🤔
Trust Proxy یه تنظیم توی Express هست که به اپلیکیشن میگه آیا باید به اطلاعاتی که توی هدرهای X-Forwarded-For و X-Forwarded-Proto میاد، اعتماد کنه یا نه.
حالا این یعنی چی؟ یعنی وقتی برنامه بک اند یه سرور واسطهای (مثل Nginx یا Cloudflare) قرار داره، IP و پروتکل واقعی کاربر توی این هدرها قرار میگیره. Express بهطور پیشفرض به این اطلاعات اعتماد نداره اما اگه trust proxy رو فعال کنید، Express از این هدرها برای تعیین IP و پروتکل واقعی کاربر استفاده میکنه.
۲. Trust Proxy به چه دردی میخوره؟
وقتی که برنامه شما رو یه پراکسی معکوس (Reverse Proxy) یا یه لود بالانسر اجرا میشه، در حالت عادی Express فقط IP و اطلاعاتی که از سمت اون پراکسی دریافت کرده رو میبینه، نه اطلاعات اصلی کاربر. این یعنی ممکنه req.ip اشتباه باشه، req.protocol به جای
اینجاست که Trust Proxy به درد میخوره 👇🏻
- وقتی فعال بشه، Express مقدار واقعی IP کاربر رو از X-Forwarded-For میخونه.
- req.protocol رو بر اساس X-Forwarded-Proto تنظیم میکنه.
- req.hostname رو درست مقداردهی میکنه
۳. چجوری Trust Proxy رو توی Express فعال کنیم؟
خیلی ساده!
با این تنظیم:
- req.ip مقدار واقعی آیپی کاربر رو میده.
- req.protocol مقدار واقعی http یا https رو نشون میده.
۴. Trust Proxy چه مقدارهایی میگیره؟
مقدار
Trust Proxy یه تنظیم مهمه که وقتی برنامتون یه پراکسی مثل Nginx یا Cloudflare باشه، کمک میکنه Express اطلاعات واقعی کاربر رو تشخیص بده. اما باید دقت کنی که به هر پراکسیای اعتماد نکنید! برای امنیت بیشتر، فقط به آیپیهایی که واقعاً Proxyهای خودتون هستن اجازه بدید.
برای جزئیات بیشتر میتونید به مستندات رسمی Express در مورد TrustProxy مراجعه کنید، که این جنبه ها رو با عمق بیشتری توضیح میده.
#nodejs #express
@CodeModule
Trust Proxy یه تنظیم توی Express هست که به اپلیکیشن میگه آیا باید به اطلاعاتی که توی هدرهای X-Forwarded-For و X-Forwarded-Proto میاد، اعتماد کنه یا نه.
حالا این یعنی چی؟ یعنی وقتی برنامه بک اند یه سرور واسطهای (مثل Nginx یا Cloudflare) قرار داره، IP و پروتکل واقعی کاربر توی این هدرها قرار میگیره. Express بهطور پیشفرض به این اطلاعات اعتماد نداره اما اگه trust proxy رو فعال کنید، Express از این هدرها برای تعیین IP و پروتکل واقعی کاربر استفاده میکنه.
۲. Trust Proxy به چه دردی میخوره؟
وقتی که برنامه شما رو یه پراکسی معکوس (Reverse Proxy) یا یه لود بالانسر اجرا میشه، در حالت عادی Express فقط IP و اطلاعاتی که از سمت اون پراکسی دریافت کرده رو میبینه، نه اطلاعات اصلی کاربر. این یعنی ممکنه req.ip اشتباه باشه، req.protocol به جای
https مقدار http داشته باشه و کلی مشکل دیگه. اینجاست که Trust Proxy به درد میخوره 👇🏻
- وقتی فعال بشه، Express مقدار واقعی IP کاربر رو از X-Forwarded-For میخونه.
- req.protocol رو بر اساس X-Forwarded-Proto تنظیم میکنه.
- req.hostname رو درست مقداردهی میکنه
۳. چجوری Trust Proxy رو توی Express فعال کنیم؟
خیلی ساده!
const app = express();
app.set("trust proxy", true);
با این تنظیم:
- req.ip مقدار واقعی آیپی کاربر رو میده.
- req.protocol مقدار واقعی http یا https رو نشون میده.
اما... فعال کردنش به این سادگی هم نیست! چون ممکنه سرورهای پراکسی مختلفی جلوی اپلیکیشن باشن و تو نیاز داشته باشی مشخص کنی که به کدوم پراکسیها اعتماد داری.
۴. Trust Proxy چه مقدارهایی میگیره؟
مقدار
true همیشه بهترین گزینه نیست. Express چند مدل مقدار رو قبول میکنه: app.set("trust proxy", false); // پیشفرض، هیچ پراکسیای رو قبول نمیکنه.
app.set("trust proxy", true); // به همه پراکسیها اعتماد میکنه.
app.set("trust proxy", "loopback"); // فقط به 127.0.0.1 اعتماد میکنه.
app.set("trust proxy", "127.0.0.1"); // فقط به این IP خاص اعتماد میکنه.
app.set("trust proxy", ["192.168.1.1", "10.0.0.1"]); // لیستی از پراکسیهای قابلاعتماد.
app.set("trust proxy", 2); // از آخرین دو پراکسی مقدار رو میخونه.- مقدار 2 یعنی چی؟
وقتی مقدار 2 رو میدید، Express میاد ip واقعی کاربر رو از دو پراکسی آخر توی X-Forwarded-For استخراج میکنه. این کار به درد جایی میخوره که چند تا سرور بین کاربر و اپلیکیشن هستن.
- پس مقدار true بدیم یا نه؟
بهتره فقط به پراکسیهایی که میشناسی اعتماد کنید. مثلاً اگه سرور فقط Cloudflare یا Nginx قرار داره، میتونید فقط به اون آیپیها اعتماد کنین تا از IP Spoofing جلوگیری بشه.
Trust Proxy یه تنظیم مهمه که وقتی برنامتون یه پراکسی مثل Nginx یا Cloudflare باشه، کمک میکنه Express اطلاعات واقعی کاربر رو تشخیص بده. اما باید دقت کنی که به هر پراکسیای اعتماد نکنید! برای امنیت بیشتر، فقط به آیپیهایی که واقعاً Proxyهای خودتون هستن اجازه بدید.
برای جزئیات بیشتر میتونید به مستندات رسمی Express در مورد TrustProxy مراجعه کنید، که این جنبه ها رو با عمق بیشتری توضیح میده.
#nodejs #express
@CodeModule
Forwarded from کدنویس یکروزه (پدرام رحیمی)
nodejs-intro.pdf
739.3 KB
Forwarded from ASafaeirad
GitHub
src: set default config as node.config.json by marco-ippolito · Pull Request #57171 · nodejs/node
This PR changes the current behavior:
node --experimental-default-config-file foo.js
Will automatically look for a node.config.json file (I dont have strong opinion on the default)
If a --experimen...
node --experimental-default-config-file foo.js
Will automatically look for a node.config.json file (I dont have strong opinion on the default)
If a --experimen...
Forwarded from DevAcademy
سلام دوستان امیدوارم خوب باشید،
یک شرکت معتبر در آمریکا به صورت#ریموت با پرداخت#دلاری به دنبال نیرویی با پوزیشن زیر میباشد.
#Senior_#NodeJS_ #Developer#
#Responsibilities
Job description:
Senior NodeJS Developer (5+ yrs exp.)
- Expertise in NodeJS/NestJS frameworks
- Experience handling high load/traffic applications
- Cloud & Kubernetes environment experience
- RabbitMQ or similar message queue technologies
- Experience in scaling message consumers/workers
- MySQL database management for large datasets/high load is a huge plus
- ELK stack experience is a plus
- React front-end development skills is a plus
لطفا رزومه خود را پس ازمطالعه و تطابق با جاب دیسکریبشن با ذکر #پوزیشن به ایمیل یا دایرکت بنده ارسال کنید
EMAIL:[email protected]
💻@DevAcaademy
💬@DevAcademyGroup
یک شرکت معتبر در آمریکا به صورت#ریموت با پرداخت#دلاری به دنبال نیرویی با پوزیشن زیر میباشد.
#Senior_#NodeJS_ #Developer#
#Responsibilities
Job description:
Senior NodeJS Developer (5+ yrs exp.)
- Expertise in NodeJS/NestJS frameworks
- Experience handling high load/traffic applications
- Cloud & Kubernetes environment experience
- RabbitMQ or similar message queue technologies
- Experience in scaling message consumers/workers
- MySQL database management for large datasets/high load is a huge plus
- ELK stack experience is a plus
- React front-end development skills is a plus
لطفا رزومه خود را پس ازمطالعه و تطابق با جاب دیسکریبشن با ذکر #پوزیشن به ایمیل یا دایرکت بنده ارسال کنید
EMAIL:[email protected]
💻@DevAcaademy
💬@DevAcademyGroup
Forwarded from DevTwitter | توییت برنامه نویسی
اگه بهتون بگم با #php میشه یه سروری نوشت که به صورت مولتی تِرِد و مولتی پراسس سوکت بده و #NodeJS در برابرش عددی نیست و میشه باهاش چت نوشت یه جوری که تلگرامو بزاره جیبش احتمالا بهم میخندین؟
خنده ها تون که تموم شد این دوتا رو سرچ کنین.
#cphalcon
#swoole
<Mr pro grammer/>
@DevTwitter
خنده ها تون که تموم شد این دوتا رو سرچ کنین.
#cphalcon
#swoole
<Mr pro grammer/>
@DevTwitter
Forwarded from ASafaeirad
How to test React components using Node.JS internal test runner
📖 Read the article
#test #nodejs #article
📖 Read the article
#test #nodejs #article
matthewbrown.io
Using the node 18+ native test runner with TypeScript and React - Matthew Brown
Node.js 18 introduced a native test runner that eliminates the need for jest, mocha or vitest in basic scenarios.
Forwarded from Gopher Academy
🔵 عنوان مقاله
be experimenting with
🟢 خلاصه مقاله:
از کتابخانههای زیادی که میخواهند به مخاطبان بیشتری برسند، در حال حاضر نسخههای JavaScript ارائه میشود تا هم در مرورگر و هم در محیطهای Node.js، Deno و Bun در دسترس باشند. مزیت اصلی، دسترسی گسترده، توزیع ساده از طریق npm و تجربه کاربری یکپارچه بین فرانتاند و بکاند است.
دو مسیر رایج وجود دارد: بازنویسی بومی با TypeScript برای ارائه APIهای استاندارد، تایپهای دقیق و قابلیت tree-shaking؛ یا پورت از زبانهای سطح پایین به WebAssembly برای حفظ کارایی و استفاده مجدد از کد موجود. ابزارهایی مانند Emscripten، wasm-bindgen و ابزارهای Go این کار را تسهیل میکنند و با ارائه TypeScript declarations سطح استفادهپسند ایجاد میشود.
چالشها شامل انتخاب بین ESM و CJS، بهینهسازی اندازه باندل و داراییهای WASM، محدودیتهای مرورگر (فایلسیستم و سوکت خام)، تفاوتهای اجرا در Node.js/Deno/Bun، و مدیریت کارایی و زمان راهاندازی است. استفاده از Web Workers، بارگذاری تدریجی، بنچمارکگیری در محیطهای مختلف و مستندسازی دقیق کمککننده است. در حوزه امنیت نیز باید مراقب زنجیره تأمین، نسخهبندی SemVer، تست و انتشار مرحلهای بود.
نمونههای موفق شامل OpenCV.js، نسخه WASM از SQLite، TensorFlow.js، ONNX Runtime Web و Pyodide است که نشان میدهند با طراحی API مناسب و ابزار درست، پورتهای جدی عملی است. قاعده تصمیمگیری: اگر کتابخانه سنگین و بهینه است، WASM انتخاب خوبی است؛ اگر هدف تجربه توسعهدهنده در اکوسیستم JavaScript است، بازنویسی با TypeScript بهتر است؛ و برای قابلیتهای سختافزاری/سیستمی، رویکرد هیبریدی یا سمت سرور منطقی است. با پیشرفت WebAssembly/WASI، WebGPU و پلتفرمهای edge مانند Cloudflare Workers و Vercel Edge، زمان مناسبی برای آزمایش و تکرار است.
#JavaScript #WebAssembly #TypeScript #NodeJS #Deno #npm #OpenSource
🟣لینک مقاله:
https://golangweekly.com/link/175359/web
➖➖➖➖➖➖➖➖
👑 @gopher_academy
be experimenting with
🟢 خلاصه مقاله:
از کتابخانههای زیادی که میخواهند به مخاطبان بیشتری برسند، در حال حاضر نسخههای JavaScript ارائه میشود تا هم در مرورگر و هم در محیطهای Node.js، Deno و Bun در دسترس باشند. مزیت اصلی، دسترسی گسترده، توزیع ساده از طریق npm و تجربه کاربری یکپارچه بین فرانتاند و بکاند است.
دو مسیر رایج وجود دارد: بازنویسی بومی با TypeScript برای ارائه APIهای استاندارد، تایپهای دقیق و قابلیت tree-shaking؛ یا پورت از زبانهای سطح پایین به WebAssembly برای حفظ کارایی و استفاده مجدد از کد موجود. ابزارهایی مانند Emscripten، wasm-bindgen و ابزارهای Go این کار را تسهیل میکنند و با ارائه TypeScript declarations سطح استفادهپسند ایجاد میشود.
چالشها شامل انتخاب بین ESM و CJS، بهینهسازی اندازه باندل و داراییهای WASM، محدودیتهای مرورگر (فایلسیستم و سوکت خام)، تفاوتهای اجرا در Node.js/Deno/Bun، و مدیریت کارایی و زمان راهاندازی است. استفاده از Web Workers، بارگذاری تدریجی، بنچمارکگیری در محیطهای مختلف و مستندسازی دقیق کمککننده است. در حوزه امنیت نیز باید مراقب زنجیره تأمین، نسخهبندی SemVer، تست و انتشار مرحلهای بود.
نمونههای موفق شامل OpenCV.js، نسخه WASM از SQLite، TensorFlow.js، ONNX Runtime Web و Pyodide است که نشان میدهند با طراحی API مناسب و ابزار درست، پورتهای جدی عملی است. قاعده تصمیمگیری: اگر کتابخانه سنگین و بهینه است، WASM انتخاب خوبی است؛ اگر هدف تجربه توسعهدهنده در اکوسیستم JavaScript است، بازنویسی با TypeScript بهتر است؛ و برای قابلیتهای سختافزاری/سیستمی، رویکرد هیبریدی یا سمت سرور منطقی است. با پیشرفت WebAssembly/WASI، WebGPU و پلتفرمهای edge مانند Cloudflare Workers و Vercel Edge، زمان مناسبی برای آزمایش و تکرار است.
#JavaScript #WebAssembly #TypeScript #NodeJS #Deno #npm #OpenSource
🟣لینک مقاله:
https://golangweekly.com/link/175359/web
➖➖➖➖➖➖➖➖
👑 @gopher_academy
Forwarded from ASafaeirad
Forwarded from ASafaeirad
Node 24 is LTS now.
Here are the codemods for migration:
https://nodejs.org/en/blog/migrations/v22-to-v24
#nodejs #news
Here are the codemods for migration:
https://nodejs.org/en/blog/migrations/v22-to-v24
#nodejs #news
nodejs.org
Node.js — Node.js v22 to v24
Node.js® is a free, open-source, cross-platform JavaScript runtime environment that lets developers create servers, web apps, command line tools and scripts.