首页 > 解决方案 > Js写入类内部的文件方法

问题描述

我想要一个可以 CRUD 的课程。每个操作都有方法。使用我在课堂上提到的参数。

我希望我可以在我的方法中使用给构造函数的参数。我怎样才能做到这一点?

我可能需要使用字典或列表来正确存储数据。有什么建议吗?

const fs = require('fs')

class Product {
    constructor(productType, modelName, productPrice) {
        this.productType = productType;
        this.modelName = modelName;
        this.productPrice = productPrice;

    }

    oopWrite(productType, modelName, productPric) {
        const blah = [{productType, modelName, productPric}]//or use str arg;
        const dataJSON = JSON.stringify(blah)
        fs.writeFileSync('bleh.json', dataJSON);
        return dataJSON;
    }
}

const product1 = new Product();
console.log(product1.oopWrite({"productType":"Laptop"}, {"modelName":"ccc"}, {"modelName":"blah"}));

这个类在没有构造函数的情况下工作。如何使方法使用构造函数中传递的参数?


更新我的问题 - >我需要将产品实例化为:

const blah = new Product{productType, modelName, productPrice}//or use str arg;

标签: javascript

解决方案


您正在使用 readFileSync 而不是 writeFileSync

const fs = require('fs')

class Product {
    constructor({productType, modelName, productPrice}) {//use object parameter names
        this.productType = productType;
        this.modelName = modelName;
        this.productPrice = productPrice;

    }

    oopWrite() {
        const blah = [{this.productType, this.modelName, this.productPrice}]//pull from this;
        const dataJSON = JSON.stringify(blah)
        fs.writeFileSync('bleh.json', dataJSON);
        return dataJSON;
    }
}

const product1 = new Product({productType:"car", modelName:"porsch", productPrice:100000});
console.log(product1.oopWrite());//call without params

推荐阅读