Skip to content

Latest commit

 

History

History
40 lines (37 loc) · 909 Bytes

008 Refactoring the File Storage Code.md

File metadata and controls

40 lines (37 loc) · 909 Bytes

008 Refactoring the File Storage Code

الان می خوایم کد ها رو کمی بهتر بنویسیم برای همین به صورت زیر می نویسیم:

const p = path.join(
  path.dirname(process.mainModule.filename),
  'data',
  'products.json'
);

const getProductsFromFile = cb => {
  fs.readFile(p, (err, fileContent) => {
    if (err) {
      cb([]);
    } else {
      cb(JSON.parse(fileContent));
    }
  });
};

دو تا متد گلوبال توی فایل product.js درست کردیم و به صورت زیر استفاده می کنیم:

module.exports = class Product {
  constructor(t) {
    this.title = t;
  }

  save() {
    getProductsFromFile(products => {
      products.push(this);
      fs.writeFile(p, JSON.stringify(products), err => {
        console.log(err);
      });
    });
  }

  static fetchAll(cb) {
    getProductsFromFile(cb);
  }
};