gpt4 book ai didi

mysql - 确定如何检索结果集数据(node.js + sequelize + 外键mysql)

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

我搜索了几个帖子。有很多关于成员(member)和加入的信息;但我的问题我无法解决。我相信这部分是因为我是工具的第一次。
我们来看数据:
Categoria.js

const db   = require("./db");
const Categoria = db.sequelize.define('categorias', {
nome: {
type : db.Sequelize.STRING
},
slug: {
type: db.Sequelize.TEXT
}
})
module.exports = Categoria
Postagem.js
const Categoria = require("./Categoria");
const db = require("./db");
const Postagem = db.sequelize.define('postagens', {
titulo: {
type : db.Sequelize.STRING,
required : true
},
slug: {
type: db.Sequelize.TEXT,
required : true
},
descricao: {
type : db.Sequelize.STRING,
required : true
},
conteudo: {
type : db.Sequelize.STRING,
required : true
},
categoriaId: { // esse atributo é chave estrangeira
type: db.Sequelize.INTEGER,
required : true,
allowNull: false,
references: { // Postagem belongsTo Categoria 1:1
model: 'categorias', // nome da tabela
key: 'id' // nome da coluna na tabela
}
}
})

Postagem.belongsTo(Categoria, { foreignKey: 'categoriaId', foreignKeyConstraint: true, as: 'categoria' });

module.exports = Postagem
数据读取:
router.get("/postagens",(req, res) => {
Postagem.findAll({
include:[
{
model: Categoria,
require: true,
as: 'categoria'

}]
}).then(function(postagens){
console.log(postagens)
res.render("admin/postagens", {postagens: postagens})
}).catch(function(erro){
req.flash("error_msg", "Erro ao procurar postagens: " + erro)
res.redirect("/admin")
})
})
选择句(完美):
SELECT `postagens`.`id`, `postagens`.`titulo`, `postagens`.`slug`, `postagens`.`descricao`, `postagens`.`conteudo`, `postagens`.`categoriaId`, `postagens`.`createdAt`, `postagens`.`updatedAt`, `categoria`.`id` AS `categoria.id`, `categoria`.`nome` AS `categoria.nome`, `categoria`.`slug` AS `categoria.slug`, `categoria`.`createdAt` AS `categoria.createdAt`, `categoria`.`updatedAt` AS `categoria.updatedAt` FROM `postagens` AS `postagens` LEFT OUTER JOIN `categorias` AS `categoria` ON `postagens`.`categoriaId` = `categoria`.`id`;
Json 邮资:
[
postagens {
dataValues: {
id: 2,
titulo: 'UX',
slug: 'ux',
descricao: 'O que é UX?',
conteudo: 'O conceito de ux na web bla bla bla bla bla e mais bla',
categoriaId: 1,
createdAt: 2020-10-21T14:05:32.000Z,
updatedAt: 2020-10-21T14:05:32.000Z,
categoria: [categorias]
},
...
问题:
它不显示类别内容,只显示:类别:[类别]。
我应该怎么做才能访问字段categoria.nome?

最佳答案

只需从这样的模型实例中获取普通对象:

const plainObjects = postagens.map(x => x.get({ plain: true }))

关于mysql - 确定如何检索结果集数据(node.js + sequelize + 外键mysql),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64488531/

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