@ddgryaz

Как достать value в из объекта?

Доброго времени суток!
Есть следующий кусок кода:
async create(req, res, next) {
        try {
            let {name, info} = req.body
            const {img} = req.files
            let fileName = uuid.v4() + ".jpg"
            img.mv(path.resolve(__dirname, '..', 'static', fileName))
            const brain = await Brain.create({name, img: fileName})

            if (info) {
                info = JSON.parse(info)
                Object.keys(info).forEach(i => console.log(i))
                // Object.keys(info).forEach(i =>
                //     Brain_info.create({
                //         title: i.title,
                //         description: i.description,
                //         brainId: brain.id
                //     })
                // )
            }

            return res.json(brain)
        } catch (e) {
            next(ApiError.badRequest(e.message))
        }

    }


В общем закомментировано, то, что я пытался сделать.
При передаче объекта info создать запись в базе, с переданными полями.
в запросе под info - передаю JSON
{
"title": "spad",
"description": "dsadsadsadsad"
}


Если я делаю console.log(i.title)

То получаю undefined.
Как правильно будет сделать? Мне нужно в закомментированую часть кода, передать значение передаваемых в JSON - title и description

Спасибо!
  • Вопрос задан
  • 92 просмотра
Решения вопроса 1
TNPTSYWWCC
@TNPTSYWWCC
And I Told Them I Invented Times New Roman
Object.keys(info).forEach(i

Ты получаешь все ключи объекта и перебираешь их, откуда у строк могут быть свойства title, description, id?

Что мешает сделать так, зачем тебе цикл?
Brain_info.create({
  title: info.title,
  description: info.description,
  brainId: brain.id
})


На будущее, чтобы перебрать все ключи и свойства объекта:
const info = { title: "qq", description: "lol" };
Object.entries(info).forEach(([ key, value ]) => console.log(key, value));


Ну или примитивный for ... in
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы