Имя объекта JSON дважды - PullRequest
       2

Имя объекта JSON дважды

0 голосов
/ 06 декабря 2018

Я просто новичок в node.js, и я не понимаю этого полностью.Может кто-нибудь объяснить мне, что я делаю не так?

Вот как я делаю новый продукт

exports.postAddProduct = (req, res, next) => {
const product = new Products({
    title: req.body.title,
    url: req.body.imgUrl
});

Когда я записываю полученные данные из тела, они выглядят нормально

{ title: 'Someting', url: 'http' }

Это класс

module.exports = class Product {
constructor(title, url) {

    this.title = title,
        this.url = url
    console.log(this);

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

    fs.readFile(p, (err, fileContent) => {
        let products = [];
        // if (!err) {
        //     products.push = JSON.parse(fileContent);
        // }
        products.push(this);
        fs.writeFile(p, JSON.stringify(products), (err) => {
            console.log(err);

        });
    })
}

и вот так выглядит мой prd.json.

[{"title":{"title":"Something","url":"http"}}]

Почему я дважды получаю имя объекта (title) ??

1 Ответ

0 голосов
/ 06 декабря 2018

Вы передаете объект конструктору.Итак, вы делаете this.title={title:'...',url:'...'}

const product = new Product({
    title: req.body.title,
    url: req.body.imgUrl
});

Вы должны передать два аргумента:

const product = new Product( req.body.title , req.body.imgUrl );
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...