নোড.জেজে ফাইল লিখছি


1642

নোড.জেএস ব্যবহার করার সময় আমি কোনও ফাইলে লেখার কোনও উপায় খুঁজতে চেষ্টা করেছি, তবে কোনও সাফল্য নেই। আমি এটা কিভাবে করবো?

উত্তর:


2461

ফাইল সিস্টেম এপিআইতে প্রচুর বিবরণ রয়েছে । সর্বাধিক সাধারণ উপায়:

const fs = require('fs');

fs.writeFile("/tmp/test", "Hey there!", function(err) {
    if(err) {
        return console.log(err);
    }
    console.log("The file was saved!");
}); 

// Or
fs.writeFileSync('/tmp/test-sync', 'Hey there!');

25
আমি নোড ব্যবহার করে এই স্ক্রিপ্টটি পরীক্ষা করেছি এবং আমি ফাইলের পথটিকে "/ home /" তে পরিবর্তন করার চেষ্টা করেছি, তবে আমার নীচের ত্রুটি পেয়েছে: { [Error: EACCES, open '/home/test.txt'] errno: 3, code: 'EACCES', path: '/home/test.txt' } আমি কীভাবে এই স্ক্রিপ্টটি সংশোধন করতে পারি যাতে এটির বাইরে কাজ করে /tmp?
অ্যান্ডারসন গ্রিন

129
এছাড়াও নোট করুন আপনি একই জিনিসটি সিঙ্ক্রোনালি সম্পাদন করতে fs.writeFileSync (...) ব্যবহার করতে পারেন।
ডেভিড এরউইন

7
সম্ভবত এটি কিছুটা পুরানো, তবে @ অ্যান্ডারসন গ্রিন, আপনাকে এখনকার নোড প্রক্রিয়া মালিকের (আর আপনার ব্যবহারকারী নাম শক্তিশালী) আর / ডাব্লু অনুমতি অনুমোদনের জন্য সঠিকভাবে নোড চালাতে হবে বা চিডমোড / হোম সঠিকভাবে চালনা করতে হবে যাতে আপনি ফাইলটি লিখতে পারেন
ডেনিস ভিটালি

38
আসলে, ডেনসভিটালি, সমস্যাটি হ'ল জেন যাতে কোনও ফাইল লিখতে না পারে /home/...। সাধারণত সেই ডিরেক্টরিটি 755 মূল: চাকা (বা যাই হোক না কেন)। নোড যদি জেন ​​হিসাবে কোনও ফাইল লিখতে চায় তবে এটি লিখতে আরও সহজ হবে /home/jane/test.txt/home755 এর চেয়ে বেশি অনুমোদিত কিছুতে পরিবর্তন করা একটি বিশাল ভুল।
জেন আর্ক

7
@ জেনা এভ্রিয়েট ভাল, যেহেতু তিনি /homeডিরেক্টরিটি ফাইলটি সংরক্ষণ করতে চেয়েছিলেন আমি chmod করার পরামর্শ দিয়েছিলাম। আমি জানি এটি কোনও সুরক্ষা সমস্যা তৈরি করতে পারে। তবে ভাল, যদি ব্যবহারকারী সেখানে সংরক্ষণ করতে চান, তবে এটিই সমাধান। পিএস: আপনি যা বলেছেন তার সাথে আমি একমত (:
ভিটালি

535

বর্তমানে ফাইল লেখার জন্য তিনটি উপায় রয়েছে:

  1. fs.write(fd, buffer, offset, length, position, callback)

    বাফারটি ডিস্কে লিখিত আছে তা নিশ্চিত করতে আপনাকে কলব্যাকের জন্য অপেক্ষা করতে হবে। এটি বাফার হয় না।

  2. fs.writeFile(filename, data, [encoding], callback)

    সমস্ত ডেটা একই সাথে সঞ্চয় করতে হবে; আপনি অনুক্রমিক লেখার সম্পাদন করতে পারবেন না।

  3. fs.createWriteStream(path, [options])

    একটি তৈরি করে WriteStream, যা সুবিধাজনক কারণ আপনার কলব্যাকের জন্য অপেক্ষা করার দরকার নেই। তবে আবার এটি বাফার হয়নি।

WriteStream, নাম হিসাবে, একটি স্রোত। সংজ্ঞায়িত একটি স্ট্রিম হ'ল "বাফার" ডেটাযুক্ত যা এক দিক (উত্স-গন্তব্য) এ চলে। তবে একটি লিখনযোগ্য স্ট্রিম অগত্যা "বাফার" করা হয় না। আপনি যখন nবার লিখেন তখন একটি স্ট্রিম "বাফার" হয় এবং সময়ে n+1স্ট্রিমটি বাফারটিকে কার্নেলের কাছে প্রেরণ করে (কারণ এটি পূর্ণ এবং এটি ফ্লাশ করা দরকার)।

অন্য কথায়: "একটি বাফার" অবজেক্ট। এটি "বাফার করা হয়" বা না হয় সেই বস্তুর সম্পত্তি।

আপনি যদি কোডটি দেখেন তবে WriteStreamকোনও লিখনযোগ্য Streamবস্তু থেকে উত্তরাধিকার সূত্রে প্রাপ্ত হয় । আপনি যদি মনোযোগ দিন, আপনি কীভাবে বিষয়বস্তুটি ফ্লাশ করবেন তা দেখতে পাবেন; তাদের কোনও বাফারিং সিস্টেম নেই।

আপনি যদি একটি স্ট্রিং লিখেন, এটি একটি বাফারে রূপান্তরিত হবে এবং তারপরে নেটিভ লেয়ারে প্রেরণ এবং ডিস্কে লিখিত হবে। স্ট্রিংগুলি লেখার সময়, তারা কোনও বাফার পূরণ করছে না। সুতরাং, আপনি যদি:

write("a")
write("b")
write("c")

আপনি করছেন:

fs.write(new Buffer("a"))
fs.write(new Buffer("b"))
fs.write(new Buffer("c"))

এটা তিন ইনপুট / আউটপুট স্তরে কল। যদিও আপনি "বাফার" ব্যবহার করছেন, ডেটা বাফার হয় না। একটি বাফার করা স্ট্রিমটি করবে:, fs.write(new Buffer ("abc"))I / O স্তরটিতে একটি কল।

এখন পর্যন্ত, নোড.জেএস ভি0.12-এ (02/06/2015 স্থিতিশীল সংস্করণ ঘোষিত) এখন দুটি ফাংশন সমর্থন করে: cork()এবং uncork()। মনে হচ্ছে এই ফাংশনগুলি আপনাকে শেষ পর্যন্ত লিখিত কলগুলি বাফার / ফ্লাশ করার অনুমতি দেবে।

উদাহরণস্বরূপ, জাভাতে কিছু ক্লাস রয়েছে যা বাফার স্ট্রিম সরবরাহ করে ( BufferedOutputStream, BufferedWriter...)। আপনি যদি তিনটি বাইট লিখে থাকেন তবে এই বাইটগুলি কেবল তিনটি বাইটের জন্য আই / ও কল করার পরিবর্তে বাফারে (মেমরি) সংরক্ষণ করা হবে। বাফার পূর্ণ হয়ে গেলে সামগ্রীটি ফ্লাশ করে ডিস্কে সংরক্ষণ করা হয়। এটি কর্মক্ষমতা উন্নত করে।

আমি কিছু আবিষ্কার করছি না, কেবল ডিস্ক অ্যাক্সেস কীভাবে করা উচিত তা মনে করে।


5
+1 - দুর্দান্ত ব্যাখ্যা। স্ট্রিম লেখার জন্য ডক্সটি সাবধানে পড়া জরুরি। যদি মিথ্যা বা বন্ধ হয়ে যায়, Writer.once ('নিকাশী', ফাংশন () {call) কল করা গুরুত্বপূর্ণ বা প্রক্রিয়া শেষ হওয়ার পরে আমি যে লাইনগুলি শুকিয়েছি না তা মিস করি।
ব্রায়ানম্যাক

4
কোনও সুযোগ আপনি কীভাবে ব্যবহার করবেন cork()এবং uncork()আমাদের যারা প্রি-রিলিজ 0.11 নোড চেষ্টা করতে চান তার একটি উদাহরণ সরবরাহ করতে পারেন ?
professormeowingtons

এখন হিসাবে, নোড v0.12 স্থিতিশীল।
আগস্ট

গিটহাবের কোড বিশ্লেষণ অনুযায়ী, fs.writeFile আপনার উল্লিখিত ফাংশনগুলির মধ্যে সর্বাধিক জনপ্রিয় বলে মনে হচ্ছে। এখানে fs.writeFile ব্যবহারের জন্য বাস্তব বিশ্বের উদাহরণ রয়েছে
20:

npmবাফার রাইটিং বাস্তবায়নের জন্য কি উত্পাদন মানের লাইব্রেরি রয়েছে ?
nphonecop

265

আপনি অবশ্যই এটি কিছুটা আরও উন্নত করতে পারেন। অবরুদ্ধকরণ, বিট এবং টুকরো লেখা, পুরো ফাইলটি একবারে না লিখে:

var fs = require('fs');
var stream = fs.createWriteStream("my_file.txt");
stream.once('open', function(fd) {
  stream.write("My first row\n");
  stream.write("My second row\n");
  stream.end();
});

17
স্ট্রিম.অনসেসের কলব্যাকটিতে 'এফডি' ভেরিয়েবল কী?
স্কট টেসলার

1
@ স্কটড্যাভিডটাইজার ফাইল বর্ণনাকারী যাতে আপনার স্ট্রিমটি শেষ করার পরে এটি বন্ধ করতে সক্ষম হবেন।
আলেক্সি কামেনস্কি

3
আমি কখন স্ট্রিমটি বন্ধ করব? এই অ-ব্লকিং কেন? শুধু কৌতূহলী, আমি একটি লগ ফাইল লিখতে চেষ্টা করছি।
মেটাগুরু

1
আমি নিশ্চিত নই যে স্রোত কখন প্রবাহিত হবে। আমার অনুমান যে চাহিদার প্রবাহটি প্রবাহিত হওয়ার সম্ভাবনা রয়েছে।
ফ্রেডরিক অ্যান্ডারসন

1
@ জোলিস আপনাকে এটির জন্য অপেক্ষা করতে হবে।
ফ্রেডরিক অ্যান্ডারসন 12'14

60

সিঙ্ক্রোনাস লিখন

fs.writeFileSync (ফাইল, ডেটা [, বিকল্পসমূহ])

fs = require('fs');

fs.writeFileSync("synchronous.txt", "synchronous write!")

অ্যাসিঙ্ক্রোনাস লিখন

fs.writeFile (ফাইল, ডেটা [, অপশন], কলব্যাক)

fs = require('fs');

fs.writeFile('asynchronous.txt', 'asynchronous write!', (err) => {
  if (err) throw err;
  console.log('The file has been saved!');
});

কোথায়

file <string> | <Buffer> | <URL> | <integer> filename or file descriptor
data <string> | <Buffer> | <Uint8Array>
options <Object> | <string>
callback <Function>

অফিসিয়াল ফাইল সিস্টেম (fs) ডক্স পড়ার পক্ষে মূল্যবান ।


52
var path = 'public/uploads/file.txt',
buffer = new Buffer("some content\n");

fs.open(path, 'w', function(err, fd) {
    if (err) {
        throw 'error opening file: ' + err;
    }

    fs.write(fd, buffer, 0, buffer.length, null, function(err) {
        if (err) throw 'error writing file: ' + err;
        fs.close(fd, function() {
            console.log('file written');
        })
    });
});

2
এটি নিম্ন স্তরের fs ক্রিয়াকলাপগুলি ব্যবহার করে কীভাবে একটি ফাইল লিখতে হয় তা প্রদর্শন করে। উদাহরণস্বরূপ, আপনি গ্যারান্টি দিতে পারবেন যখন ফাইলটি ডিস্কে লেখা শেষ করে এবং ফাইল বর্ণনাকারী প্রকাশ করে।
শন গ্লোভার

যেহেতু এই উদাহরণে অফসেটটি যদি '0' (= এর তৃতীয় প্যারামিটার fs.write()) সেট করা থাকে তবে এই উদাহরণটি কেবলমাত্র তখনই কাজ করে যদি সবকিছু একক রাইটিং কলে লেখার জন্য যথেষ্ট কম থাকে।
মনফ্রেড

30

আমি ./articles/file- সিস্টেমের সূচকটি পছন্দ করি ।

এটা আমার জন্য কাজ করেছে।

আরও দেখুন কীভাবে আমি নোড.জেজে ফাইল লিখব?

fs = require('fs');
fs.writeFile('helloworld.txt', 'Hello World!', function (err) {
    if (err) 
        return console.log(err);
    console.log('Wrote Hello World in file helloworld.txt, just check it');
});

হেলিওরল্ড.টেক্সট এর বিষয়বস্তু:

Hello World!

আপডেট:
লিনাক্স নোড যেমন বর্তমান ডিরেক্টরিতে লেখেন তেমন অন্য কারও কাছে মনে হয় না, তাই আমি এই মন্তব্যটি কেবলমাত্র ক্ষেত্রে যুক্ত করব: ফাইলটি যেখানে লেখা আছে তা পেতে এটি
ব্যবহার করে ROOT_APP_PATH = fs.realpathSync('.'); console.log(ROOT_APP_PATH);


Helloworld.txt ফাইলটি কোথায় পাবেন? আমি এটি কোনও ফোল্ডারে খুঁজে পাচ্ছি না ... ধন্যবাদ
কাই ফেং চিউ

যে ফোল্ডারে আপনি স্ক্রিপ্টটি চালান
সের্গিও

এটি অদ্ভুত ... আমি কোথাও এটি খুঁজে পাচ্ছি না। এটা কি লুকিয়ে থাকবে? আবার ধন্যবাদ ~
কাই ফেং চিউ

6
আমি সবেমাত্র এটি খুঁজে পেয়েছি। এই ROOT_APP_PATH = fs.relpathSync ('।') ব্যবহার করে; কনসোল.লগ ( ROOT_APP_PATH ); আমার যেখানে ফাইল লেখা আছে। ধন্যবাদ।
কাই ফেং চিউ

@ সেরজিও: আমাদের কি রাইফাইল বন্ধ করা দরকার? আমি অন্য একটি প্রক্রিয়া কল করছি এবং আমি ফাইল সম্পর্কিত একটি ত্রুটি পেয়ে যাচ্ছি অন্য কোনও প্রক্রিয়া দ্বারা ব্যবহার করা শুরু হয়।
আমির

23

প্রদত্ত উত্তরগুলি তারিখযুক্ত এবং এটি করার একটি নতুন উপায় হ'ল:

const fsPromises = require('fs').promises
await fsPromises.writeFile('/path/to/file.txt', 'data to write')

আরও তথ্যের জন্য এখানে নথি দেখুন


1
(node:23759) ExperimentalWarning: The fs.promises API is experimental
jgraup

@ জগ্রাপ: আপনি নোডের সর্বশেষতম সংস্করণটি ব্যবহার করছেন?
ট্রেভডেডিভ

নোডv10.15.0
জগ্রেআপ

7
এনক্লোজিং ফাংশনটি async হতে হবে বা এটি কাজ করবে না।
জিমানো

1
@ উইন্টারকাউন্টার এটি বেশ মিষ্টি!
জিমানো

18

আমি জানি "লিখন" সম্পর্কে জিজ্ঞাসিত প্রশ্নটি কিন্তু আরও সাধারণ অর্থে "অ্যাপেন্ড" কিছু ক্ষেত্রে কার্যকর হতে পারে কারণ কোনও ফাইলে পাঠ্য যুক্ত করার জন্য একটি লুপে ব্যবহার করা সহজ (ফাইলটি উপস্থিত রয়েছে কি না)। আপনি যদি লাইন যুক্ত করতে চান তবে একটি "\ n" ব্যবহার করুন:

var fs = require('fs');
for (var i=0; i<10; i++){
    fs.appendFileSync("junk.csv", "Line:"+i+"\n");
}

যেহেতু এটি এখন উপলভ্য আমি এর constপরিবর্তে ব্যবহার করে পুনঃসংশোধন করব var, অর্থাত্ const fs = require('fs');, অযাচিত পার্শ্ব প্রতিক্রিয়া এড়াতে, বিশেষত যদি আপনি কিছুটা বড় কোড বেস নিয়ে কাজ করছেন।
মানফ্রেড

10

ঠিক আছে, নোড এর জন্য বিল্ট-ইন কার্যকারিতা রয়েছে বলে এটি বেশ সহজ, একে বলা হয় fsযা ফাইল সিস্টেম এবং মূলত নোডজেএস ফাইল সিস্টেম মডিউল ...

সুতরাং প্রথমে এটি আপনার সার্ভার.জেএস ফাইলের মধ্যে এটির প্রয়োজন :

var fs = require('fs');

fsফাইলটিতে লেখার জন্য কয়েকটি পদ্ধতি রয়েছে তবে আমার পছন্দের appendFileউপায়টি ব্যবহার করছে , এটি ফাইলটিতে স্টাফ সংযুক্ত করবে এবং যদি ফাইলটি উপস্থিত না থাকে তবে একটি তৈরি করবে, কোডটি নীচের মতো হতে পারে:

fs.appendFile('myFile.txt', 'Hi Ali!', function (err) {
  if (err) throw err;
  console.log('Thanks, It\'s saved to the file!');
});

3
স্ট্রিং মধ্যে একক উদ্ধৃতি এড়ানো উচিত।
তামের

8
 var fs = require('fs');
 fs.writeFile(path + "\\message.txt", "Hello", function(err){
 if (err) throw err;
  console.log("success");
}); 

উদাহরণস্বরূপ: ফাইল পড়ুন এবং অন্য একটি ফাইলে লিখুন:

  var fs = require('fs');
    var path = process.cwd();
    fs.readFile(path+"\\from.txt",function(err,data)
                {
                    if(err)
                        console.log(err)
                    else
                        {
                            fs.writeFile(path+"\\to.text",function(erro){
                                if(erro)
                                    console.log("error : "+erro);
                                else
                                    console.log("success");
                            });
                        }
                });

আপনি কোথায় "টু টেক্সট" তে ডেটা লিখছেন?
রবি শঙ্কর রেড্ডি

ইতিমধ্যে বিদ্যমান একাধিক উত্তরের সাথে এই উত্তরটি কী যুক্ত করে writeFile?
ড্যান ড্যাসক্লেস্কু

7

আপনি fs (ফাইল সিস্টেম) মডিউলটি ব্যবহার করে কোনও ফাইলে লিখতে পারেন ।

আপনি কীভাবে এটি করতে পারেন তার একটি উদাহরণ এখানে দেওয়া হয়েছে:

const fs = require('fs');

const writeToFile = (fileName, callback) => {
  fs.open(fileName, 'wx', (error, fileDescriptor) => {
    if (!error && fileDescriptor) {
      // Do something with the file here ...
      fs.writeFile(fileDescriptor, newData, (error) => {
        if (!error) {
          fs.close(fileDescriptor, (error) => {
            if (!error) {
              callback(false);
            } else {
              callback('Error closing the file');
            }
          });
        } else {
          callback('Error writing to new file');
        }
      });
    } else {
      callback('Could not create new file, it may already exists');
    }
  });
};

আপনি প্রতিশ্রুতি এবং async/ awaitবিবৃতি ব্যবহার করে এই কলব্যাক-ইন-কলব্যাক কোড কাঠামো থেকে মুক্তি পেতে চাইতে পারেন want এটি অ্যাসিক্রোনাস কোড কাঠামোকে আরও বেশি সমতল করবে। এটি করার জন্য একটি সুবিধাজনক ব্যবহার রয়েছে pr প্রমিসিফাই (মূল) ফাংশনটি ব্যবহার করা যেতে পারে। এটি আমাদের কলব্যাক থেকে প্রতিশ্রুতিতে স্যুইচ করার অনুমতি দেয়। fsনীচের ফাংশনগুলির সাথে উদাহরণটি একবার দেখুন:

// Dependencies.
const util = require('util');
const fs = require('fs');

// Promisify "error-back" functions.
const fsOpen = util.promisify(fs.open);
const fsWrite = util.promisify(fs.writeFile);
const fsClose = util.promisify(fs.close);

// Now we may create 'async' function with 'await's.
async function doSomethingWithFile(fileName) {
  const fileDescriptor = await fsOpen(fileName, 'wx');

  // Do something with the file here...

  await fsWrite(fileDescriptor, newData);
  await fsClose(fileDescriptor);
}

1
এই স্নিপেটগুলি কেন এবং কোডের টুকরা নয়? তারা যেভাবে কোনওভাবেই ব্রাউজারে চালাতে সক্ষম হবে না।
জিমানো

@ জিমানো যেহেতু আমি এটি বুঝতে পেরেছি নোডেজ সম্পর্কিত প্রশ্নটি তাই ব্রাউজারে চালানোর জন্য দরকার হবে না।
ম্যানফ্রেড

1
@ মানফ্রেড অবিকল! আমি মনে করি আপনি যা বোঝার চেষ্টা করছেন তা ভুল বুঝেছি; স্নিপেটস থাকার কোনও মানে নেই কারণ এটি নোডেজ!
জিমানো

4

উভয় ক্রিয়া পড়তে / লেখার জন্য এখানে আমরা ডাব্লু + ব্যবহার করি এবং যদি ফাইলের সন্ধান না পাওয়া যায় তবে এটি স্বয়ংক্রিয়ভাবে তৈরি হয়ে যায়।

fs.open(path, 'w+', function(err, data) {
    if (err) {
        console.log("ERROR !! " + err);
    } else {
        fs.write(data, 'content', 0, 'content length', null, function(err) {
            if (err)
                console.log("ERROR !! " + err);
            fs.close(data, function() {
                console.log('written success');
            })
        });
    }
});

সামগ্রীর অর্থ ফাইল এবং এর দৈর্ঘ্যে আপনাকে কী লিখতে হবে, 'সামগ্রী. দৈর্ঘ্য' means


2

স্থানীয় থেকে ফাইল সিএসভি কীভাবে পড়তে হবে এবং স্থানীয়ভাবে সিএসভি ফাইল লিখতে হবে তার নমুনা এখানে।

var csvjson = require('csvjson'),
    fs = require('fs'),
    mongodb = require('mongodb'),
    MongoClient = mongodb.MongoClient,
    mongoDSN = 'mongodb://localhost:27017/test',
    collection;

function uploadcsvModule(){
    var data = fs.readFileSync( '/home/limitless/Downloads/orders_sample.csv', { encoding : 'utf8'});
    var importOptions = {
        delimiter : ',', // optional 
        quote     : '"' // optional 
    },ExportOptions = {
        delimiter   : ",",
        wrap        : false
    }
    var myobj = csvjson.toSchemaObject(data, importOptions)
    var exportArr = [], importArr = [];
    myobj.forEach(d=>{
        if(d.orderId==undefined || d.orderId=='') {
            exportArr.push(d)
        } else {
            importArr.push(d)
        }
    })
    var csv = csvjson.toCSV(exportArr, ExportOptions);
    MongoClient.connect(mongoDSN, function(error, db) {
        collection = db.collection("orders")
        collection.insertMany(importArr, function(err,result){
            fs.writeFile('/home/limitless/Downloads/orders_sample1.csv', csv, { encoding : 'utf8'});
            db.close();
        });            
    })
}

uploadcsvModule()

1
এটি প্রশ্নের সাথে সম্পর্কিত নয় এমন সমস্ত ধরণের জটিলতা (মঙ্গোক্লিয়েন্ট, জেএসএন ইত্যাদি) উপস্থাপন করে।
ড্যান ড্যাসকলেসকু

2

fs.createWriteStream(path[,options])

optionsstartফাইলের শুরুর আগে কিছু অবস্থানে ডেটা লেখার অনুমতি দেওয়ার একটি বিকল্প অন্তর্ভুক্ত থাকতে পারে । কোনও ফাইলের পরিবর্তে পরিবর্তনের পরিবর্তে ডিফল্ট মোডের পরিবর্তে flagsমোডের প্রয়োজন হতে পারে । বাফার দ্বারা গৃহীত যেকোনো একটিতে এনকোডিং হতে পারে ।r+w

যদি autoCloseসত্য (ডিফল্ট আচরণ) সেট করা থাকে 'error'বা 'finish'ফাইল বর্ণনাকারী স্বয়ংক্রিয়ভাবে বন্ধ হয়ে যাবে। যদি autoCloseএটি মিথ্যা হয় তবে ত্রুটি থাকলেও ফাইল বর্ণনাকারী বন্ধ হবে না। এটি বন্ধ করে দেওয়া এবং কোনও ফাইল বর্ণনাকারী ফাঁস হওয়ার বিষয়টি নিশ্চিত করার জন্য অ্যাপ্লিকেশনটির দায়িত্ব।

রিড স্ট্রিমের মতো , যদি fdনির্দিষ্ট করা থাকে তবে রাইটস্ট্রিমpath যুক্তি উপেক্ষা করবে এবং নির্দিষ্ট ফাইল বর্ণনাকারী ব্যবহার করবে। এর অর্থ কোনও 'open'ইভেন্ট নির্গত হবে না। fdব্লক করা উচিত; নন-ব্লকিংয়ে নেট.সকেটেfd পাস করা উচিত ।

যদি optionsএকটি স্ট্রিং হয়, তবে এটি এনকোডিং নির্দিষ্ট করে।

পরে, এই দীর্ঘ নিবন্ধ পড়া। এটি কীভাবে কাজ করে তা আপনার বোঝা উচিত। সুতরাং, এখানে একটি উদাহরণ createWriteStream()

/* The fs.createWriteStream() returns an (WritableStream {aka} internal.Writeable) and we want the encoding as 'utf'-8 */
/* The WriteableStream has the method write() */
fs.createWriteStream('out.txt', 'utf-8')
.write('hello world');

createWriteStreamএই উত্তরটির বহু বছর আগে ইতিমধ্যে উল্লেখ করা হয়েছিল ।
ড্যান ড্যাসক্লেস্কু

0

আপনি গ্রন্থাগার ব্যবহার করতে পারেন easy-file-manager

এনপিএম থেকে প্রথম ইনস্টল করুন npm install easy-file-manager

ফাইলগুলি আপলোড এবং অপসারণের নমুনা

var filemanager = require('easy-file-manager')
var path = "/public"
var filename = "test.jpg"
var data; // buffered image

filemanager.upload(path,filename,data,function(err){
    if (err) console.log(err);
});

filemanager.remove(path,"aa,filename,function(isSuccess){
    if (err) console.log(err);
});

2
This modules is created to save and remove files.। কোনও উত্তর নয়।
সবুজ

-1

আপনি নিম্নলিখিত কোড উদাহরণ দিয়ে একটি ফাইলে লিখতে পারেন:

var data = [{ 'test': '123', 'test2': 'Lorem Ipsem ' }];
fs.open(datapath + '/data/topplayers.json', 'wx', function (error, fileDescriptor) {
  if (!error && fileDescriptor) {
    var stringData = JSON.stringify(data);
    fs.writeFile(fileDescriptor, stringData, function (error) {
      if (!error) {
        fs.close(fileDescriptor, function (error) {
          if (!error) {
            callback(false);
          } else {
            callback('Error in close file');
          }
        });
      } else {
        callback('Error in writing file.');
      }
    });
  }
});

1
writeFileইতিমধ্যে বহু বছর আগে একাধিকবার উত্তর হিসাবে দেওয়া হয়েছিল। এই উত্তরটি কী যুক্ত করে?
ড্যান ড্যাসকলেসকু

এছাড়াও আপনি কেন ফাইল খুলবেন? উত্তরটি ফাইল লেখার ক্ষেত্রে হওয়া উচিত নয়?
মিশাল
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.