សាស្ត្រា fs ជាសាស្ត្រាមានស្រាប់ដែលនៅក្នុងនោះមានក្បួនខ្នាតមួយចំនួនប្រើប្រាស់សំរាប់បង្កើតឯកសារ ស្រង់ព័ត៌មានពីឯកសារ លុបឯកសារ បន្ថែមព័ត៌មានចូលទៅក្នុងឯកសារ និងប្តូរឈ្មោះរបស់ឯកសារ។ ដោយឡែក ដើម្បីស្រង់យកព័ត៌មានពីឯកសារណាមួយ យើងចាំបាច់ត្រូវប្រើប្រាស់វិធីឈ្មោះ readFile នៅក្នុងសាស្ត្រា fs ។ ឧទាហរណ៍ យើងមានឯកសារ HTML មួយមានឈ្មោះថា myfile.html ដែលនៅក្នុងនោះមានព័ត៌មានដូចខាងក្រោមនេះ៖
<html>
<body>
<h1>ក្បាលទំព័រ</h1>
<p>កថាខ័ណ្ឌ</p>
</body>
</html>
នៅក្នុងកម្មវិធី Node.js ដើម្បីស្រង់យកព័ត៌មាន (read) នៅក្នុងឯកសារខាងលើនេះ យើងត្រូវធ្វើដូចខាងក្រោមនេះ៖
var http = require('http');
var fs = require('fs');
http.createServer(function (req, res) {
fs.readFile('myfile.html', function(err, data) {
res.writeHead(200, {'Content-Type': 'text/html'});
res.write(data);
res.end();
});
}).listen(8080);
នៅលើបន្ទាត់លេខ 2 ការសរសេរថា var fs = require('fs'); គឺជាការយកសាស្ត្រាមានស្រាប់ fs មកប្រើប្រាស់ទាក់ទងនឹងប្រព័ន្ធឯកសារ។
នៅលើបន្ទាត់លេខ 5 ការសរសេរថា fs.readFile('myfile.html', function(err, data) { គឺជាការយកវិធីឈ្មោះ readFile នៅក្នុងសាស្ត្រា fs មកប្រើក្នុងគោលបំណងស្រង់យកព័ត៌មាននៅក្នុងឯកសារឈ្មោះ myfile.html ដែលជាឯកសារស្ថិតនៅក្នុងថតជាមួយនឹងកម្មវិធីខាងលើ។
នៅលើបន្ទាត់លេខ 7 ការសរសេរថា res.write(data); គឺជាការឆ្លើយតបទៅអ្នកប្រើប្រាស់ដោយសរសេរបង្ហាញនៅលើ browser នូវព័ត៌មានស្រង់មកពីឯកសារឈ្មោះ myfile.html ។
យ៉ាងណាម៉ិញ ដើម្បីបង្កើតឯកសារផ្សេងៗនៅក្នុងកម្មវិធី Node.js យើងអាចប្រើប្រាស់នូវវិធីចំនួនបីដែលមាននៅក្នុងសាស្ត្រាមានស្រាប់ fs ។ វិធីទាំង ៣ គឺ appendFile(), open(), និង writeFile() ។ ពិនិត្យកម្មវិធីខាងក្រោមនេះ៖
var http = require('http');
var fs = require('fs');
http.createServer(function (req, res) {
fs.appendFile('mynewfile1.txt', 'បង្កើតឯកសារ mynewfile1.txt \n', function (err){
if (err) throw err;
console.log('Saved!');
});
fs.readFile('mynewfile1.txt', function(err, data) {
res.writeHead(200, {'Content-Type': 'text/html'});
res.write(data);
res.end();
});
}).listen(8080);
នៅលើបន្ទាត់លេខ 5 ការសរសេរថា fs.appendFile('mynewfile1.txt', 'បង្កើតឯកសារ mynewfile1.txt \n', function (err){ គឺជាការប្រើវិធីឈ្មោះ appendFile នៅក្នុងសាស្ត្រា fs ដើម្បីបង្កើតឯកសារថ្មីមួយមានឈ្មោះថា mynewfile1.txt ស្ថិតនៅក្នុងថតជាមួយនឹងកម្មវិធីខាងលើនេះ។ មួយវិញទៀត ព័ត៌មានដែលជាកំរងអក្សរ 'បង្កើតឯកសារ mynewfile1.txt \n' ក៏ត្រូវបានបញ្ចូលទៅក្នុងឯកសារនេះដែរ។
យើងត្រូវកត់សំគាល់ថា វីធីឈ្មោះ appendFile នេះបង្កើតឯកសារថ្មីក្នុងករណីដែលវារកមិនឃើញមានឯកសារណាមួយមានឈ្មោះដូចជាឯកសារដែលវាត្រូវបង្កើតតែប៉ុណ្ណោះ។ បើពុំនោះសោតទេ វានឹងបើកឯកសារដែលមានឈ្មោះដូចឯកសារដែលត្រូវបង្កើតនោះ ដើម្បីសរសេរបញ្ចូលព័ត៌មានផ្សេងៗនៅខាងចុងឯកសារនោះ។
ចំណែកឯវិធីឈ្មោះ open() វិញ ក៏ត្រូវបានគេយកមកប្រើប្រាស់សំរាប់បង្កើតឯកសារថ្មីៗដែរ តែវិធីនេះខុសពីវិធីឈ្មោះ appendFile() នៅត្រង់ថា វាមិនបញ្ខូលទិន្នន័យផ្សេងៗចូលទៅក្នុងឯសារដែលត្រូវបានបង្កើតថ្មីនោះឡើយ។ ហើយដូចគ្នានឹងវិធីឈ្មោះ appendFile() ដែរ ក្នុងករណីដែលមានឯកសារចាស់ណាមួយមានឈ្មោះដូចឯកសារថ្មីដែលត្រូវបង្កើតនោះ វិធីឈ្មោះ open() នឹងមិនបង្កើតឯកសារថ្មីណាមួយឡើយ ពោលគឺវានឹងបើកឯកសារចាស់នោះសំរាប់បន្ថែមទិន្នន័យឬស្រង់យកទិន្នន័យមកប្រើការ។ ពិនិត្យកម្មវិធីខាងក្រោមនេះ៖
var http = require('http');
var fs = require('fs');
http.createServer(function (req, res) {
fs.open('mynewfile2.txt', 'w', function (err, file){
if (err) throw err;
console.log('Saved!');
});
fs.readFile('mynewfile2.txt', function(err, data) {
res.writeHead(200, {'Content-Type': 'text/html'});
res.write(data);
res.end();
});
}).listen(8080);
នៅលើបន្ទាត់លេខ 5 ការសរសេរថា fs.open('mynewfile2.txt', 'w', function (err, file){ គឺជាការយកវិធីឈ្មោះ open() នៅក្នុងសាស្ត្រាមានស្រាប់ fs មកប្រើដើម្បីបង្កើតឯកសារថ្មីមួយទៀតមានឈ្មោះថា mynewfile2.txt ទុកនៅក្នុងថតជាមួយនឹងកម្មវិធីខាងលើនេះ។
ចំពោះវិធីឈ្មោះ writeFile() ក៏មានលក្ខណៈដូចជាវិធីឈ្មោះ appendFile() ដែរ គឺវានឹងបង្កើតឯកសារថ្មីមួយនិងបញ្ចូលទិន្នន័យថ្មីទៅក្នុងនោះ ក្នុងករណីដែលគ្មានឯកសារចាស់ណាមួយមានឈ្មោះដូចឯកសារថ្មីដែលត្រូវបង្កើតនោះទេ។ បើពុំនោះសោតទេ វានឹងបើកឯកសារចាស់នោះរួចជំនួសទិន្នន័យទាំងអស់នៅក្នុងនោះ ដោយទិន្នន័យថ្មី។ ពិនិត្យកម្មវិធីខាងក្រោមនេះ៖
var http = require('http');
var fs = require('fs');
http.createServer(function (req, res) {
fs.writeFile('mynewfile3.txt', 'ទិន្នន័យថ្មី', function (err){
if (err) throw err;
console.log('Saved!');
});
fs.readFile('mynewfile3.txt', function(err, data) {
res.writeHead(200, {'Content-Type': 'text/html'});
res.write(data);
res.end();
});
}).listen(8080);
នៅលើបន្ទាត់លេខ 5 ការសរសេរថា fs.writeFile('mynewfile3.txt', 'ទិន្នន័យថ្មី', function (err){ គឺជាការយកវិធីឈ្មោះ writeFile() នៅក្នុងសាស្ត្រា fs មកប្រើ ដើម្បីបង្កើតឯកសារថ្មីមួយមានឈ្មោះថា mynewfile3.txt ទុកនៅក្នុងថតជាមួយនឹងកម្មវិធីខាងលើនេះ ដោយបញ្ជូលទិន្នន័យដែលជាកំរងអក្សរ 'ទិន្នន័យថ្មី' ចូលទៅក្នុងនោះ។
ផ្ទុយទៅវិញ បើយើងចង់លុបឯកសារណាមួយ យើងត្រូវប្រើវិធីឈ្មោះ unlink() នៅក្នុងសាស្ត្រា fs ។ ពិនិត្យកម្មវិធីខាងក្រោមនេះ៖
var http = require('http');
var fs = require('fs');
http.createServer(function (req, res) {
fs.unlink('mynewfile2.txt', function (err) {
if (err) throw err;
console.log('File deleted!');
});
fs.readFile('mynewfile2.txt', function(err, data) {
res.writeHead(200, {'Content-Type': 'text/html'});
res.write(data);
res.end();
});
}).listen(8080);
នៅលើបន្ទាត់លេខ 5 ការសរសេរថា fs.unlink('mynewfile2.txt', function (err) { គឺជាការប្រើវិធីឈ្មោះ unlink() នៅក្នុងសាស្ត្រា fs ដើម្បីលុបឯកសារមានឈ្មោះ mynewfile2.txt ។
យ៉ាងណាម៉ិញ បើសិនជាយើងចង់ប្តូរឈ្មោះរបស់ឯកសារណាមួយ យើងត្រូវប្រើវិធីឈ្មោះ rename() នៅក្នុងសាស្ត្រា fs ។ ពិនិត្យកម្មវិធីខាងក្រោមនេះ៖
var http = require('http');
var fs = require('fs');
http.createServer(function (req, res) {
fs.rename('mynewfile1.txt', 'myrenamedfile.txt', function (err) {
if (err) throw err;
console.log('File Renamed!');
});
fs.readFile('myrenamedfile.txt', function(err, data) {
res.writeHead(200, {'Content-Type': 'text/html'});
res.write(data);
res.end();
});
}).listen(8080);
នៅលើបន្ទាត់លេខ 5 ការសរសេរថា fs.rename('mynewfile1.txt', 'myrenamedfile.txt', function (err) { គឺជាការយកវិធីឈ្មោះ rename() នៅក្នុងសាស្ត្រា fs មកប្រើដើម្បីប្តូរឈ្មោះឯកសារ mynewfile1.txt អោយទៅជា myrenamedfile.txt វិញ៕