এই নির্দেশিকাটি Node.js-এ লেখার যোগ্য স্ট্রিমগুলির সাথে কাজ করার ব্যাখ্যা করে।
কিভাবে Node.js এ লেখার যোগ্য স্ট্রীম নিয়ে কাজ করবেন?
দ্য ' লেখার যোগ্য ” স্ট্রিম ফাইলটিতে নতুন ডেটা সন্নিবেশ করতে ব্যবহার করা যেতে পারে বা অন্য র্যান্ডম স্ট্রিমের বিষয়বস্তু রাখতে পারে। ডেটা রূপান্তর বা বসানো বেশিরভাগই 'এর সাহায্যে ঘটে পাইপ() 'পদ্ধতি। এই পদ্ধতিটি তথ্যের সংঘর্ষের সম্ভাবনা হ্রাস করার সাথে সাথে বিষয়বস্তু রূপান্তর এবং বরাদ্দ করার প্রক্রিয়াটিকে আরও সুবিধাজনক করে তোলে।
বাক্য গঠন
লিখনযোগ্য স্ট্রীমটি নীচের পদ্ধতিটি ব্যবহার করে তৈরি করা হয়েছে:
fs লিখুন স্ট্রীম তৈরি করুন ( 'targetFile.ext' ) ;
উপরের সিনট্যাক্সে, ' creatWriteStream() 'আমদানি করা বস্তুর দ্বারা আহ্বান করা হয়' fs ” মডিউল, এবং যে ফাইলটিতে ডেটা লেখা হবে সেটি প্যারামিটার হিসাবে পাস করা হয়।
আসুন Node.js-এ লেখার যোগ্য স্ট্রীমের জন্য কয়েকটি উদাহরণ দেখি।
উদাহরণ 1: একটি লেখার যোগ্য স্ট্রিম ব্যবহার করে অন্য ফাইলের বিষয়বস্তু লেখা
নীচের উদাহরণে, র্যান্ডম ফাইলটি পঠনযোগ্য স্ট্রীমে পাঠানো হয়, এবং তারপরে এই ফাইলের বিষয়বস্তু লেখার যোগ্য স্ট্রীমে উপলব্ধ অন্য ফাইলে স্থাপন করা হয়:
fsObj ছিল = প্রয়োজন ( 'এফএস' ) ;
const তথ্য প্রবাহ = fsObj. রিডস্ট্রিম তৈরি করুন ( 'mynewfile1.txt' ) ;
const স্ট্রিম লিখুন = fsObj. লিখুন স্ট্রীম তৈরি করুন ( 'mynewfile2.txt' ) ;
তথ্য প্রবাহ. পাইপ ( স্ট্রিম লিখুন ) ;
উপরের কোডের বর্ণনা:
- প্রথমত, ' fs 'মডিউল আমদানি করা হয় এবং এর বস্তুটি নতুন 'এ সংরক্ষণ করা হয় fsObj ' পরিবর্তনশীল।
- পরবর্তী, এর সাহায্যে ' fasObj 'আহ্বান করুন' CreateReadStream() একটি পঠনযোগ্য স্ট্রীম তৈরি করার পদ্ধতি এবং নির্বাচিত পঠনযোগ্য ফাইলটিকে এর প্যারামিটার হিসাবে পাস করুন।
- তারপরে, লেখার যোগ্য স্ট্রীম তৈরি করা হয় ' createWriteStream() প্রদত্ত ফাইলে বিষয়বস্তু লেখার পদ্ধতি।
- উপরের আমন্ত্রিত পদ্ধতির ফলাফল 'এ সঞ্চয় করুন' তথ্য প্রবাহ ' এবং ' স্ট্রিম লিখুন ” ভেরিয়েবল যথাক্রমে।
- অবশেষে, 'আহ্বান করুন। পাইপ() 'পদ্ধতি অনুসরণ করে' তথ্য প্রবাহ 'এবং 'এর সাথে নেতৃত্ব দিচ্ছেন স্ট্রিম লিখুন 'ভেরিয়েবল।
এখন, নিচের কমান্ডটি চালিয়ে সম্বলিত ফাইল (controlFlow.js) চালান:
উদাহরণ 2: “stream.write()” পদ্ধতি ব্যবহার করে ফাইলে বিষয়বস্তু লেখা
এই উদাহরণে, ' লিখুন() ” পদ্ধতিটি লেখার যোগ্য স্ট্রীমে উপলব্ধ ফাইলের উপর ডেটা লিখতে ব্যবহৃত হয়:
fsObj ছিল = প্রয়োজন ( 'এফএস' ) ;const httpObj = প্রয়োজন ( 'http' ) ;
const স্থানীয়ভাবে পরিবেশন করুন = httpObj. সার্ভার তৈরি করুন ( ( অনুরোধ প্রতিক্রিয়া ) => {
চেষ্টা করুন {
const সেল স্ট্রিম = fsObj. লিখুন স্ট্রীম তৈরি করুন ( 'mynewfile2.txt' ) ;
সেল স্ট্রিম লিখুন ( 'ডেটা টার্গেট করা ফাইলে স্থাপন করতে হবে।' ) ;
সেল স্ট্রিম শেষ ( ) ;
প্রতিক্রিয়া শেষ ( 'লিখনযোগ্য প্রবাহের মাধ্যমে ডেটা লেখা' )
}
ধরা ( ত্রুটি ) {
কনসোল ত্রুটি ( ত্রুটি ) ;
}
} ) ;
স্থানীয়ভাবে পরিবেশন করুন। শুনুন ( 8080 , ( ) => {
কনসোল লগ ( 'সার্ভার লোকালহোস্ট পোর্ট নম্বরে চলছে: '8080'' )
) ;
উপরের কোডের বর্ণনা নিম্নরূপ:
- প্রথমে প্রয়োজনীয় আমদানি করুন ' fs ' এবং ' http ' মডিউল এবং তাদের বস্তু সংরক্ষণ করুন ' fsObj ' এবং ' httpObj ” ভেরিয়েবল যথাক্রমে।
- এর পরে, সার্ভার তৈরি করা হয়েছে ' CreateServer() ' পদ্ধতি এবং এই নতুন তৈরি সার্ভারটিকে একটি 'এ সংরক্ষণ করা স্থানীয়ভাবে পরিবেশন করুন ' পরিবর্তনশীল।
- তারপর, একটি ব্যবহার করুন ' চেষ্টা করুন ' পদ্ধতি কলব্যাক ফাংশনের ভিতরে ব্লক করুন এবং ' createWriteStream() 'পদ্ধতি ব্যবহার করে' fsObj ' পরিবর্তনশীল।
- টার্গেট করা ফাইলটি পাস করুন যার উপর বিষয়বস্তু সন্নিবেশ করা দরকার, এই পদ্ধতি বন্ধনীর ভিতরে এবং ফলাফলটি “ সেল স্ট্রিম ' পরিবর্তনশীল
- ব্যবহার করুন ' লিখুন() এই ভেরিয়েবলের সাথে মেথড এবং এর বন্ধনীর ভিতরে একটি ডামি মেসেজ দিন যা টার্গেট করা ফাইলে লেখা হবে।
- 'কে আহ্বান করে স্ট্রীম বন্ধ করুন শেষ() ' পদ্ধতি এবং ওয়েব পৃষ্ঠায় একটি সফল বার্তা প্রদর্শন করুন ' response.end() 'পদ্ধতি। কোথায় ' প্রতিক্রিয়া ' হল ' এর কলব্যাক প্যারামিটার সার্ভার তৈরি করুন 'পদ্ধতি।
- ব্যবহার করুন ' ধরা ” যেকোন ত্রুটি দেখা দেওয়ার জন্য ব্লক করুন।
- অবশেষে, পোর্ট নম্বরের উপর সার্ভারটি শুনুন বা সেট আপ করুন “ 8080 এবং এর কলব্যাক ফাংশনের সাহায্যে সাফল্যের বার্তা প্রদর্শন করুন।
উৎপন্ন আউটপুট দেখায় যে প্রদত্ত পাঠ্যটি ' ব্যবহার করে লেখা হয়েছে লিখুন() 'পদ্ধতি:
উদাহরণ 3: একাধিক ফাইলে একই ডেটা লেখা
এই উদাহরণে, একটি একক ফাইল স্ট্রীম থেকে পড়তে যাচ্ছে “ CreateReadStream() 'পদ্ধতি। তারপর, পঠিত বিষয়বস্তু একাধিক ফাইলের উপর লেখা হয় “ createWriteStream() ' এবং ' পাইপ() 'পদ্ধতি:
fsObj ছিল = প্রয়োজন ( 'এফএস' ) ;const তথ্য প্রবাহ = fsObj. রিডস্ট্রিম তৈরি করুন ( 'mynewfile1.txt' ) ;
const writeStream1 = fsObj. লিখুন স্ট্রীম তৈরি করুন ( 'mynewfile2.txt' ) ;
const writeStream2 = fsObj. লিখুন স্ট্রীম তৈরি করুন ( 'usecase.txt' ) ;
তথ্য প্রবাহ. পাইপ ( writeStream1 ) ;
তথ্য প্রবাহ. পাইপ ( writeStream2 ) ;
উপরের কোড স্নিপেটে:
- দ্য ' CreateReadStream() ” পদ্ধতিটি চালু করা হয়েছে এবং যে ফাইলটির বিষয়বস্তু পড়তে হবে সেটির প্যারামিটার হিসাবে পাস করা হয়েছে। এই পদ্ধতির ফলাফল সংরক্ষণ করা হয় ' তথ্য প্রবাহ ' পরিবর্তনশীল।
- পরবর্তী, ' createWriteStream() ” পদ্ধতি বলা হয় এবং লক্ষ্যযুক্ত ফাইলটিকে এর প্যারামিটার হিসাবে পাস করা হয়।
- একই পদ্ধতিতে, দ্বিতীয় ফাইলের পথটিও একটি লিখনযোগ্য স্ট্রিম হিসাবে পাস করা হয় এবং ফলাফলগুলি 'এ সংরক্ষণ করা হয় writeStream1 ' এবং ' writeStream2 'ভেরিয়েবল।
- এর পরে, ব্যবহার করে ' পাইপ() ' পদ্ধতিতে সামগ্রী সংরক্ষণ করা হয় ' তথ্য প্রবাহ ' ভেরিয়েবল 'কে বরাদ্দ করা হয়েছে writeStream1 ' এবং ' writeStream2 'ভেরিয়েবল।
উত্পন্ন আউটপুট দেখায় যে প্রদত্ত ফাইলের বিষয়বস্তু স্ট্রীমগুলিতে প্রদত্ত ফাইলগুলিতে ঢোকানো হয়েছে:
এটি Node.js-এ লেখার যোগ্য স্ট্রিমগুলির কাজ সম্পর্কে।
উপসংহার
লিখনযোগ্য স্ট্রিমগুলির সাথে কাজ করার জন্য, 'এর পদ্ধতি createWriteStream() 'এর মাধ্যমে আহ্বান করা হয়' fs ” মডিউল অবজেক্ট। টার্গেট করা ফাইল পাথ যার উপর বিষয়বস্তু লিখতে হবে সেটির প্যারামিটার হিসাবে পাস করা হয়েছে। অন্য স্ট্রিম থেকে বিষয়বস্তু লিখতে ' পাইপ() 'পদ্ধতি ব্যবহার করা হয়। দ্য ' লিখুন() লক্ষ্য করা ফাইলে সরাসরি বিষয়বস্তু লেখার ক্ষেত্রে পদ্ধতিটিও সহায়ক। এই পোস্টটি লেখার যোগ্য স্ট্রীমগুলির সাথে কাজ করার পদ্ধতিটি চিত্রিত করেছে।