سایت خبرکاو

جستجوگر هوشمند اخبار و مطالب فناوری

نحوه کار با فایل ها در Node.js

working-with-files.png
جاوا اسکریپت یک زبان برنامه نویسی محبوب در بین توسعه دهندگان وب است. اما زمانی که برای اولین بار منتشر شد، فقط توسعه دهندگان فرانت اند از تمام سرگرمی های آن لذت بردند، زیرا نمی توانستید جاوا اسکریپت را خارج از مرورگر اجرا کنید. اما پس از آن در سال ۲۰۰۹، اولین نسخه Node.js منتشر شد. Node یک زمان اجرا جاوا اسکریپت است که به شما امکان می دهد کد JS را خارج از مرورگر اجرا ...

جاوا اسکریپت یک زبان برنامه نویسی محبوب در بین توسعه دهندگان وب است. اما زمانی که برای اولین بار منتشر شد، فقط توسعه دهندگان فرانت اند از تمام سرگرمی های آن لذت بردند، زیرا نمی توانستید جاوا اسکریپت را خارج از مرورگر اجرا کنید.

اما پس از آن در سال ۲۰۰۹، اولین نسخه Node.js منتشر شد. Node یک زمان اجرا جاوا اسکریپت است که به شما امکان می دهد کد JS را خارج از مرورگر اجرا کنید و به توسعه دهندگان باطن لذت استفاده از جاوا اسکریپت را نیز می دهد.

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

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

قبل از شروع کدنویسی...

بیایید پیش نیازها صحبت کنیم. آیا برای دنبال کردن این مقاله به دانش Node زیادی نیاز دارید؟ نه. اما شما باید مقدار خوبی از جاوا اسکریپت را درک کنید تا از این راهنما به طور کامل لذت ببرید.

همچنین، اگر Node قبلاً نصب نشده باشد، باید آن را روی رایانه خود نصب کنید. فرآیند نصب آسان است – تنها کاری که باید انجام دهید این است که Node.js را از سایت رسمی دانلود کنید و دستور نصب را دنبال کنید و آماده هستید.

سیستم فایل Node.js

Node به عنوان یک سرور فایل عمل می کند. با ماژول Node می توانید با فایل های موجود در رایانه خود کار کنید و عملیات مختلفی را انجام دهید. هنگامی که در حال ساخت یک برنامه وب هستید، ممکن است بخواهید تصاویر، رزومه، ویدیوها یا اسناد را در سرور آپلود کنید. خب، سیستم فایل Node توانایی انجام همه اینها و بیشتر را دارد.

از آنجایی که این یک راهنمای مبتدی است، قبل از اینکه بیشتر در مورد سیستم فایل صحبت کنیم، ابتدا توضیح خواهم داد که ماژول های Node به طور کلی چیست.

ماژول های Node چیست؟

در صورتی که با این اصطلاح آشنایی ندارید، ماژول‌های Node به سادگی کد جاوا اسکریپت قابل استفاده مجدد هستند. شما به راحتی می توانید ماژول ها را در امتداد خط در سراسر پروژه خود وارد کنید. هدف ماژول ها این است که اطمینان حاصل شود که شما دائماً همان کد را در طول پروژه تکرار نمی کنید.

انواع مختلفی از ماژول های Node وجود دارد - ماژول های محلی، ماژول های داخلی و ماژول های شخص ثالث. در این راهنما ما بر روی ماژول های داخلی تمرکز خواهیم کرد.

در اینجا فهرست ی از ماژول های داخلی Node آمده است:

fs

http

آدرس اینترنتی

سیستم عامل

مسیر

fs ماژول سیستم فایل در Node است. الان همه چیز منطقی است، درست است؟ یک کتابخانه کامل از ماژول های گره وجود دارد. اگر می خواهید در مورد آنها بیشتر بدانید، باید در مورد ماژول های Node و نحوه استفاده از آنها بیشتر بخوانید. بیا ادامه بدیم!

نحوه کار با ماژول Node fs

ماژول fs به شما امکان می دهد چندین عملیات را انجام دهید که شامل فایل ها و پوشه ها می شود. با ماژول fs می توانید:

خواندن فایل ها

فایل ها را ایجاد کنید

به روز رسانی فایل ها

فایلهاروحذف کن

تغییر نام فایل ها

برای شروع کار با این دنیای مدیریت فایل، ابتدا یک پوشه ایجاد می کنیم. سپس فعلاً یک فایل جاوا اسکریپت ایجاد می کنیم. فایل JS را با VS Code یا هر ویرایشگر متنی که از آن راضی هستید باز کنید و بیایید کمی کد بنویسیم.

نحوه خواندن فایل ها

برای خواندن مستقیم فایل‌ها از رایانه، باید از متد fs.readFile() استفاده کنید. برای این کار باید فایلی را که می خواهید بخوانید ایجاد کنید. بیایید فرض کنیم که این یک فایل txt با محتوای hello world است. بیایید آن را dummyText.txt بنامیم.

اکنون چندین راه وجود دارد که می توانید یک فایل را با Node بخوانید – یا با استفاده از ماژول http ، که فایل شما را در لوکال هاست می خواند، یا با استفاده از وعده ها. من هر دو را به شما نشان خواهم داد و کدام یک ارجحیت دارد.

بیایید با استفاده از ماژول http شروع کنیم. فایل JS خود را باز کنید، اجازه دهید آن را readfile.js بنامیم و کد زیر را اضافه کنید:

 const http = require('http'); const fs = require('fs'); http.createServer(function (req, res) { fs.readFile('dummyText.txt', function(err, data) { res.writeHead(200, {'Content-type': 'text/html'}); res.write(data); return res.end(); }); }).listen(8080);

کد را ذخیره کنید و سپس cmd در پوشه فایل باز کنید و Node readfile.js را اجرا کنید:

C:\Users\nodefilesystem>node readfile.js

برای مشاهده نتایج خود به https://localhost:8080 مراجعه کنید. شما باید محتوای متن ساختگی را در مرورگر خود مشاهده کنید.

حالا بیایید این را با وعده ها بازسازی کنیم. روش نوید یک سبک برنامه‌نویسی مدرن‌تر است، زیرا ما همگام‌سازی جدید را وارد می‌کنیم و سینتکس منتظر می‌شویم . بیایید فایل خود را با استفاده از وعده ها بخوانیم.

 // import promises const { readFile } = require('fs/promises'); async function readThisFile('./dummytext.txt') { try { const data = await readFile('/dummytext.txt'); console.log(data.toString()); } catch (error) { console.error(`Got an error trying to read the file: {error.message}`); } }

بیایید کد را توضیح دهیم. پس ماژول Node premts را با استفاده از سیستم فایل وارد کردیم. ما از fs/Promises برای پردازش فایل های خود با وعده ها استفاده کردیم.

ما از متد readFile برای پردازش فایلی که قصد داریم بخوانیم استفاده کردیم. با استفاده از وعده ها می توانیم فایل های خود را به صورت ناهمزمان بخوانیم. در متد readFile مسیری به dummytext داریم که می‌خواهیم آن را بخوانیم، سپس محتوای فایل را برمی‌گردانیم.

ما همچنین از روش مدیریت خطای try-catch استفاده کردیم تا اطمینان حاصل کنیم که می‌توانیم آنچه را که پیام خطا می‌خواند به درستی کنترل کنیم. پس ، اگر مشکلی در کد قبل از خط گرفتن وجود داشته باشد، به جای یک پیام خطای نامرتب، خروجی "Got an error تلاش برای خواندن فایل" را دریافت می کند.

مدیریت خطا همچنین از توقف برنامه در صورت مشاهده خطا جلوگیری می کند. با کد ما، برنامه همچنان می تواند از سر گرفته شود، حتی اگر قطع شود.

اگر می خواهید در این مورد بیشتر بخوانید، در اینجا یک منبع عالی از freeCodeCamp در مورد مدیریت خطا در جاوا اسکریپت وجود دارد.

نحوه ایجاد فایل

اکنون که با روش کار با فایل سیستم آشنا شدیم، در ادامه راهنما از آن استفاده خواهیم کرد. اکنون که می دانیم چگونه محتویات یک فایل موجود را بخوانیم، چگونه یاد بگیریم که چگونه آنها را ایجاد کنیم؟

برای ایجاد یک فایل می توانیم از یکی از سه روش appendFile() ، open() و writeFile() استفاده کنیم.

بیایید ویرایشگر متن خود را باز کنیم و با appendFile() شروع کنیم:

 const { appendFile} = require('fs/promises'); async function appendToFile('anotherDummyText.txt', 'i love node') { try { await appendFile(fileName, data, { flag: 'w' }); console.log(`Appended data to ${fileName}`); } catch (error) { console.error(`Got an error trying to append the file: {error.message}`); } }

بیایید کد را کمی بیشتر توضیح دهیم. ما قبلاً ماژول را فراخوانی کردیم و اکنون از متد appendFile برای نوشتن روی فایلی که قبلاً ایجاد کردیم استفاده می کنیم. اگر برنامه هیچ فایلی را با نامی که در تابع appendToFile بیان کردیم نمی بیند، آن را ایجاد می کند.

همچنین از روش کنترل خطای try-catch برای اطمینان از کنترل خطاها استفاده کردیم.

در مرحله بعد، با WriteFile کار می کنیم. تقریباً همان کد است، اما با چند تنظیمات:

 const { writeFile } = require('fs/promises'); async function writeToFile('dummyText.txt', 'using write method') { try { await writeFile(fileName, data); console.log(`Wrote data to ${fileName}`); } catch (error) { console.error(`Got an error trying to write the file: ${error.message}`); } }

اکنون از متد writeFile استفاده می کنیم که فایل را مستقیماً ایجاد کرده و داده ها را به آن اضافه می کند. همچنین به کلمه کلیدی await توجه داشته باشید که برای اجرای یک وعده موفق جاوا اسکریپت به آن نیاز داریم.

نحوه تغییر نام فایل ها

یکی دیگر از بخش‌های اصلی کار با فایل‌ها، تغییر نام یک فایل موجود است. بیایید نگاهی به نحوه عملکرد آن بیندازیم:

 const { rename } = require('fs/promises'); async function renameFile('dummytext.txt', 'changedDummyText.txt') { try { await rename(from, to); console.log(`Renamed ${from} to ${to}`); } catch (error) { console.error(`Got an error trying to rename the file: ${error.message}`); } }

همانطور که می بینید، تابع async ما این بار دو پارامتر داشت، اولی نام فعلی سندی را که قصد داریم تغییر دهیم قدیمی می شود و دومی نام جدیدی را که در حال کار با آن هستیم قدیمی می کند.

ما همچنین dummyText.txt خود را به changedDummyText.txt تغییر داده ایم.

نحوه حذف فایل ها

برای حذف یک فایل، باید روش unlink را فراخوانی کنیم. این بار به جای داشتن دو پارامتر، فقط یک پارامتر خواهیم داشت: نام یا مسیر فایلی که می خواهید حذف کنید.

ما همچنان از روش رسیدگی به خطای try-catch خود برای کنترل خطاها و ثبت نام فایلی که در کنسول حذف شده است استفاده خواهیم کرد.

 const { unlink } = require('fs/promises'); async function deleteFile('./dummytext.txt') { try { await unlink(filePath); console.log(`Deleted ${filePath}`); } catch (error) { console.error(`Got an error trying to delete the file: ${error.message}`); } }

نحوه به روز رسانی فایل ها

بله، من اشاره کردم که ما نیز یاد خواهیم گرفت که چگونه فایل ها را به روز کنیم - اما اگر دقت کرده باشید، خواهید دید که قبلاً انجام داده ایم.

ما در مورد appendFile() صحبت کردیم که اساساً اطلاعات کلیدی را تغییر می دهد و به شما امکان می دهد محتوای جدید فایل را بنویسید. ما همچنین در مورد writeFile() صحبت کردیم که محتویات یک فایل را نیز به روز می کند.

نتیجه

در اینجا ما، پایان این راهنما هستیم. بیایید آنچه را که در این آموزش آموخته ایم را مرور کنیم.

ابتدا در مورد اینکه Node.js چیست و چقدر سیستم فایل اهمیت دارد صحبت کردیم. ما همچنین یاد گرفتیم که ماژول های Node چیست. همه اینها برای درک بقیه آموزش برای شما حیاتی است.

به خاطر داشته باشید که عملیات بیشتری وجود دارد که می توانید با سیستم فایل در Node انجام دهید. این آموزش فقط اصول اولیه و عملکردهای اولیه را پوشش می دهد. کمی در مورد آن بخوانید و چیزهای بیشتری را کشف خواهید کرد.

اگر این مقاله را دوست داشتید، بیایید در توییتر صحبت کنیم . من دوست دارم با تک تک شما ارتباط برقرار کنم.