gpt4 book ai didi

node.js - 方法返回相同的次数

转载 作者:行者123 更新时间:2023-12-03 22:34:34 24 4
gpt4 key购买 nike

数据库

sequelize.sync().then(function () {
keywordTitle.create({
Title: 'ceo',
userId: 1
})
});
服务器.js
              keywordTitle.findAll({where: {userId: req.user.id}}).then((keywordsTitle) => {
let titleFromDB = keywordsTitle.map(title => title.dataValues.Title);
titleFromDB.forEach(userTitle => {
console.log(userTitle)
})
})
它应该只返回 ceo 一次,但会返回更多次。
Executing (default): SELECT `id`, `Title`, `createdAt`, `updatedAt`, `userId` FROM `keywordTitles` AS `keywordTitle` WHERE `keywordTitle`.`userId` = 1;
ceo
ceo
ceo
ceo
Executing (default): SELECT `id`, `Title`, `createdAt`, `updatedAt`, `userId` FROM `keywordTitles` AS `keywordTitle` WHERE `keywordTitle`.`userId` = 1;
ceo
ceo
ceo
ceo
Executing (default): SELECT `id`, `Title`, `createdAt`, `updatedAt`, `userId` FROM `keywordTitles` AS `keywordTitle` WHERE `keywordTitle`.`userId` = 1;
ceo
ceo
ceo
ceo

最佳答案

首先检查 userId 是否唯一。您似乎有多个具有相同 userId 的记录。
如果要返回单个记录,请使用 findOne 函数

keywordTitle.findOne({where: {userId: req.user.id}})
.then(keywordTitle => {
if (!keywordTitle) {
// If the title cannot be found it will be null
return;
}
const titleFromDB = keywordTitle.Title;
console.log(titleFromDB);
});
});
要记住的一件事是,如果您有多个具有相同 userId 的关键字标题,则上述函数将仅返回第一条记录

关于node.js - 方法返回相同的次数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62709396/

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