如何使用 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);
});
});
- checkAuthorization 是检查用户是否登录 id
我的问题是:我发送了一个没有 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);
我尝试使用 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);
});
});
- checkAuthorization 是检查用户是否登录 id
我的问题是:我发送了一个没有 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);