gpt4 book ai didi

mysql - 使用 Sequelize 一次将数据创建到三个表

转载 作者:行者123 更新时间:2023-11-29 15:48:04 26 4
gpt4 key购买 nike

我想从表单中获取数据,并基于此将数据添加到mySQL中的三个表中,我使用Sequelize来执行此操作,但是我不知道如何执行此操作,我当前的想法给出了错误:

Unhandled rejection Error [ERR_HTTP_HEADERS_SENT]: Cannot set headers after they are sent to the client

我的代码是这样的:

app.post("/device/add", (req, res) => {
db.Devices.create({
device_id: req.body.device_id,
server: req.body.server,
type: req.body.type
})
.then(result => {
res.json(result);
})
.catch(err => {
throw err;
});

db.Modules.create({
device_id: req.body.device_id,
device_options: req.body.device_options,,
sleep_options: req.body.sleep_options
})
.then(result => {
res.json(result);
})
.catch(err => {
throw err;
});

db.Tests.create({
device_id: req.body.device_id,
gsm_tests: req.body.gsm_tests,
led_tests: req.body.led_tests,
})
.then(result => {
res.json(result);
})
.catch(err => {
throw err;
});
});

我可以以某种方式在一个响应中创建它吗?或者如何让它发挥作用

最佳答案

问题是您在发送回复后尝试再次发送回复。

有关更多说明,请参阅 here

您可以使用 Promise.all() 累积结果,然后在一次 res.json() 调用中发送它。

const createDevice = db.Devices.create({
device_id: req.body.device_id,
server: req.body.server,
type: req.body.type
})

const createModules = db.Modules.create({
device_id: req.body.device_id,
device_options: req.body.device_options,
sleep_options: req.body.sleep_options
})
const createTests = db.Tests.create({
device_id: req.body.device_id,
gsm_tests: req.body.gsm_tests,
led_tests: req.body.led_tests,
})

Promise
.all([createDevice , createModules , createTests ])
.then(result=> {
res.json({
devices: result[0],
modules: result[1],
test : result[2]
});

})
.catch(err => {
throw(err);
});

关于mysql - 使用 Sequelize 一次将数据创建到三个表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56932586/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com