تبدیل curl به Node.js

دستورات curl را با استفاده از ماژول داخلی http به کد Node.js تبدیل کنید. curl2code کاملاً در مرورگر شما از طریق WebAssembly اجرا می‌شود — کلیدهای API و داده‌های شما خصوصی می‌مانند. برای JavaScript سمت مرورگر، مبدل curl به JavaScript ما را ببینید. اگر Python را ترجیح می‌دهید، curl به Python را امتحان کنید. در ادامه مثال‌های آماده برای استفاده را خواهید یافت.

نحوه کپی کردن curl از مرورگر

  1. 1

    باز کردن DevTools

    کلید F12 یا Ctrl+Shift+I را فشار دهید تا ابزارهای توسعه‌دهنده مرورگر باز شوند.

  2. 2

    رفتن به تب Network

    روی تب Network کلیک کنید و عملیاتی که باعث ارسال درخواست HTTP می‌شود را انجام دهید.

  3. 3

    کپی به عنوان cURL

    روی درخواست راست‌کلیک کنید ← CopyCopy as cURL. سپس آن را در بالا جایگذاری کنید.

سوالات متداول

ماژول http در Node.js چیست؟

ماژول‌های http و https ماژول‌های داخلی Node.js برای ارسال درخواست‌های HTTP بدون هیچ وابستگی هستند. آن‌ها کنترل سطح پایینی روی استریم‌های request/response فراهم می‌کنند. برای جایگزین‌های سطح بالاتر، curl2code همچنین از axios، node-fetch، got، ky و superagent پشتیبانی می‌کند.

http در مقابل axios در مقابل node-fetch در مقابل got — از کدام استفاده کنم؟

ماژول http بدون وابستگی اما پرحجم است. axios یک API تمیز با اینترسپتورها و پارس خودکار JSON ارائه می‌دهد. node-fetch مشابه Fetch API مرورگر عمل می‌کند. got دارای ویژگی‌های غنی با تلاش مجدد، صفحه‌بندی و استریم است. بر اساس نیاز پروژه انتخاب کنید. برای JavaScript مرورگر، مبدل curl به JavaScript ما را ببینید.

چگونه احراز هویت را در Node.js مدیریت کنیم؟

هدر Authorization را در شیء options تنظیم کنید. برای Basic auth، از Buffer.from(user + ':' + pass).toString('base64') استفاده کنید. با axios، از گزینه پیکربندی داخلی auth استفاده کنید. curl2code فلگ‌های -u و توکن Bearer را برای تمام کتابخانه‌های پشتیبانی شده Node.js تبدیل می‌کند.

چگونه داده‌های فرم چندبخشی را در Node.js ارسال کنیم؟

با ماژول داخلی http، بدنه چندبخشی را به صورت دستی بسازید یا از پکیج form-data استفاده کنید. با axios، یک نمونه FormData را به عنوان بدنه پاس دهید. Node.js نسخه ۱۸ به بالا دارای کلاس داخلی FormData است. curl2code فلگ‌های -F را برای هر نوع کتابخانه مدیریت می‌کند.

چگونه خطاهای HTTP را در Node.js مدیریت کنیم؟

با http، به رویداد 'error' روی درخواست گوش دهید و response.statusCode را چک کنید. با axios، خطاها برای کدهای وضعیت غیر 2xx پرتاب می‌شوند و می‌توان آن‌ها را در try/catch گرفت. با got، از همان الگو به علاوه منطق داخلی تلاش مجدد در صورت شکست استفاده کنید.

چگونه پاسخ‌های استریمینگ را در Node.js مدیریت کنیم؟

ماژول http به طور پیش‌فرض یک استریم خواندنی برمی‌گرداند — آن را با response.pipe(fs.createWriteStream('file')) لوله‌کشی (pipe) کنید. با got، از got.stream(url) استفاده کنید. با axios، responseType: 'stream' را تنظیم کنید. استریمینگ برای فایل‌های بزرگ ایده‌آل است و از بارگذاری کل پاسخ در حافظه جلوگیری می‌کند.

چگونه مهلت زمانی را در درخواست‌های HTTP در Node.js تنظیم کنیم؟

با http، مقدار timeout را در گزینه‌ها پاس دهید و به رویداد 'timeout' گوش دهید، سپس req.destroy() را فراخوانی کنید. Axios مقدار timeout را به میلی‌ثانیه می‌پذیرد. Got از هر دو timeout.request و تلاش‌های مجدد خودکار داخلی با عقب‌نشینی (backoff) قابل پیکربندی پشتیبانی می‌کند.

چگونه از یک پروکسی با Node.js استفاده کنیم؟

ماژول داخلی http نیاز به تونل‌زنی دستی پروکسی دارد. از پکیج‌های https-proxy-agent یا http-proxy-agent استفاده کنید. Axios از پروکسی‌ها از طریق پیکربندی proxy پشتیبانی می‌کند. Got از گزینه agent با ایجنت‌های پروکسی استفاده می‌کند. curl2code فلگ‌های -x و --proxy را به درستی تبدیل می‌کند.

چگونه یک درخواست POST با بدنه JSON در Node.js ارسال کنیم؟

یک دستور curl POST مانند curl -X POST -H "Content-Type: application/json" -d '{"key":"value"}' URL را با استفاده از curl2code به Node.js تبدیل کنید. کد تولید شده از axios.post(url, { key: 'value' }) استفاده می‌کند. curl2code به طور خودکار فلگ‌های -d/--data با محتوای JSON را تشخیص داده و هدر Content-Type مناسب را در کد axios تنظیم می‌کند.

چگونه احراز هویت با Bearer token را در Node.js اضافه کنیم؟

دستور curl -H "Authorization: Bearer YOUR_TOKEN" URL را به curl2code بدهید تا کد axios را با هدر احراز هویت تولید کند: headers: { Authorization: 'Bearer YOUR_TOKEN' }. curl2code توکن‌های Bearer را از هر دو فلگ -H "Authorization: Bearer ..." و --oauth2-bearer تشخیص می‌دهد. برای Basic auth، از -u user:pass استفاده کنید.

چگونه هدر Content-Type را در Node.js تنظیم کنیم؟

curl2code دستور curl -H "Content-Type: application/json" URL را به کد axios با هدر مناسب تبدیل می‌کند: headers: { 'Content-Type': 'application/json' }. برای داده‌های -d، دستور curl به طور پیش‌فرض از application/x-www-form-urlencoded استفاده می‌کند؛ برای آپلودهای فرم -F، از multipart/form-data استفاده می‌کند. curl2code هر کدام را به API صحیح axios نگاشت می‌کند.

لینک‌های مفید

راهنماهای curl

تبدیل curl به زبان‌های دیگر