Мангуст создает и обновляет _ nodejs mongoose

#node.js #mongoose

#node.js #Мангуст

Вопрос:

теперь мои функции работают корректно, когда я пытаюсь создать или обновить документ с помощью mongoose из-за ошибки:

Ошибка типа Uncaught Error: не удается установить свойство ‘undefined’ для undefined в createCategory (/home/bell/workspace/panel-screen/controllers/CategoryController.js:21:21) в processTicksAndRejections (internal/process/task_queues.js:86:5)

 const createCategory = async (req, res) => {
    res.setHeader('Content-Type', 'application/json');
    let err, category;
    console.log(req.body)
    [err, category] = await to(Category.create({
        name: req.body.name,
        lang: req.body.lang,
    }))
    if (err) return ReE422(res, err);

    return ReS(res, category)

}

module.exports.createCategory = createCategory;
  

Я даже переустановил анализатор тела. это мое тело:

 { name: 'foo', lang: 'en' }
  

Комментарии:

1. Есть ли какая-то причина, по которой вы просто не делаете try { let category = await Category.create(({ name, lang }) => ({ name, lang }))(req.body)); return ReS(res, category) } catch (e) { return Re422(res, e); } ? Или вы просто не понимали, что можете сделать это в машинном коде, и предположили, что вам нужна какая-то непонятная библиотека? Говоря о «родном», есть res.json(category) , который также делает это и setHeader для вас.

2. да, to — это сокращение от promise : to = function (promise) { return promise .then(data => { return [null, data]; }).catch(ошибка => [{ сообщение: err.message, код: err.code }]); }; @NeilLunn если ошибка поступает из базы данных, она заполняет ее. и для моего ответа я создал функции. там я передаю возврат json

3. Итак, что я подразумеваю под «не осознавал», так это то, что я написал там, сокращенно и изначально для Promise разрешения. Вы, похоже, прочитали чей-то блог и подумали, что это to что-то новое. Это не так. Современный код может быть написан так, как я сделал в комментарии.

4. Я не думаю, что этот синтаксис беспокоит мою проблему? не так ли? Я выбираю этот синтаксис для обработки моих ответов с меньшим количеством кода. Я не получил его ни из одного сообщения в блоге. я прочитал несколько советов о том, как лучше обрабатывать функции promise . поэтому я подумал, что было бы лучше обращаться с ними так. потому что я не пишу свои ответы снова и снова в каждом контроллере, который я написал. sry, может быть, я ошибаюсь, может быть, это старый стиль или то, что вы сказали, взято из другого блога. но он работает нормально.