Как обрабатывать несколько ключей запроса с одинаковым значением? - PullRequest
0 голосов
/ 12 мая 2019

Для этого проекта я строю модели и передаю значения из тела запроса POST. Я хочу понять, как я должен объявлять модели.

Образец JSON, который я хочу опубликовать в MongoDB.

{
    "signageId": "5cd857c4965f863b7c88d24a",
    "parameters": {
        "imageURL": "url.com",
        "page": {
            "pageHeight": "100", //want to change to "height"
            "pageWidth": "100"   //want to change to "width"
        },
        "density": {
            "height": "300",
            "width": "300"
        }
    }
}

Я хочу назвать pageHeight и pageWidth просто как "height" и "width" в JSON, как я это сделал для сегмента плотности, но у меня возникают трудности, зная, как объявлять модели и получать значения из запроса .

Модель, которую я использую:

const ObjectSchema = new Schema({
    signageId: {
        type: String,
        require: true
    }
    parameters: {
        imageURL: {
            type: String,
            require: true
            }
        },
        page: {
            pageHeight: {
                type: String
            },
            pageWidth: {
                type: String
            }
        },
        density: {
            height: {
                type: String
            },
            width: {
                type: String
            }
        }
    }
});

Почтовый роутер

router.post('/', (req, res) =>{
    const object = new Objects({
        signageId: req.body.signageId,
        imageURL: req.body.imageURL,
        page: req.body.page,
        pageHeight: req.body.pageHeight,
        pageWidth: req.body.pageWidth,
        density: req.body.density,
        height: req.body.height,
        width: req.body.width
    });
    try {
        object.save();
        res.json({object});
    }
    catch (err) {
        res.json({message: err});
    }
});

1 Ответ

0 голосов
/ 12 мая 2019

Ваш новый объект должен быть примерно таким.

    const newObject = new Objects({
        signageId: req.body.signageId,
        parameters: {
            imageURL: req.body.imageURL,
            page: {
                height: req.body.pageHeight,
                width: req.body.pageWidth,
            },
            density: {
                height: req.body.height,
                width: req.body.width,
            }
        }

    });

Примечания :
1. Дайте вашей схеме мангуста другое имя, чтобы избежать конфликтов JavaScript.
2. Вы можете использовать height и width свойства для разных объектов.

page: {
    height: {
        type: String
    },
    width: {
        type: String
    }
},
density: {
    height: {
        type: String
    },
    width: {
         type: String
    }
}

3.свойства модели должны быть required, не требовать

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...