如何使用 Sequelize 在 POST 方法之后取回对象 ID 并将其发送到前端?

How to get back the object id after POST method using Sequelize and send it to frontend?

我尝试使用 Sequelize 在我的 MySQL 数据库中 post 一个新对象,我有这条路线:

app.post("/event", checkAuthorization, async (req, res) => {

    let new_event = {
        title: req.body.title,
        description: req.body.description,
        label: req.body.label,
        day: req.body.day,
        user_id: req.body.user_id,
    };

    let response = {};

    Events.create(new_event)
        .then(() => {
            response.msg = 'Adaugat cu succes!';
            response.added = 1;
            res.send(response);
        })
        .catch((err) => {
            response.msg = err;
            response.added = 0;
            res.send(response);
        });

});

我的问题是:我发送了一个没有 id 的对象,因为它在我的数据库中自动递增,我想要的只是在我 post 数据库中的这个对象之后,到 return 前端数据库创建的对象 ID,我不知道怎么写。

有人可以帮我吗?

这应该对您有帮助:

Events.create(new_event)
        .then((event) => {
            response.id=event.id
            response.msg = 'Adaugat cu succes!';
            response.added = 1;
            res.send(response);
        })
        .catch((err) => {
            response.msg = err;
            response.added = 0;
            res.send(response);
        });

你会得到创建的对象作为参数

我尝试使用:

Events.create(new_event)
        .then((event) => {
            console.log(event);
            response.msg = 'Adaugat cu succes!';
            response.added = 1;
            res.send(response);
        })
        .catch((err) => {
            response.msg = err;
            response.added = 0;
            res.send(response);
        });

这是输出:

event {
  dataValues: {
    id: null,
    title: 't',
    description: 'dsada',
    label: 'green',
    day: 1645653600000,
    user_id: 2
  },
  _previousDataValues: {
    title: 't',
    description: 'dsada',
    label: 'green',
    day: 1645653600000,
    user_id: 2,
    id: null
  },
  uniqno: 1,
  _changed: Set(0) {},
  _options: {
    isNewRecord: true,
    _schema: null,
    _schemaDelimiter: '',
    attributes: undefined,
    include: undefined,
    raw: undefined,
    silent: undefined
  },
  isNewRecord: false,
  null: 23
}

那个 'null: 23' 是我的 ID,我不知道为什么数据库 returns 我的 ID 是这样的...有人可以解释一下吗?

您将使用以下代码轻松获取用户插入的数据

const result = await Events.create(new_event);
console.log(result.id);