gpt4 book ai didi

node.js - 在 sequelize 中加入同一张表并在 excel 中打印

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

我想在excel中打印 parent 姓名
这是我的代码


function getReportT0Print(req, res) {
return new Promise((resolve, reject) => {
Product.findAll({
where: {
$and: [
{
public: true,
visible: true,
ancestry: {
$not: null,
},
},
],
},
include: [
{
model: ormDb.Document,
required: false,
},
],
attributes: ["name", "slug", "folder_path"],
})
.then(function (data) {
// console.log("data" + data.length);
var rows = [];
rows.push(["Product Name", "Slug", "File Path", "Product Parent Name"]);
data.map(function (product) {
rows.push([
product.name,
product.slug,
product.folder_path,
(here i need to print parent name)
]);
});
var workbook = new Excel.Workbook();
var sheet = workbook.addWorksheet("products_with_tags");
sheet.addRows(rows);
resolve(workbook);

return res.send("successfull");
})
.catch(function (err) {
reject(err);
});
});
}
我可以打印名称、slug、folder_path,但我不知道如何在 excel 文件中打印父名称
因为父名不存在,但我给出了 parent_id 代替父名并想打印父名
我的 SQL 表看起来像这样
("id""name""version""published""reviewed""visible""public", "parent_id")

最佳答案

您需要注册两个 Product 之间的关联像这样的模型:

Product.belongsTo(Product, { foreignKey: 'parent_id', as: 'parent' });
例如,您可以将其放置在模型模块文件之外的某个模块中,您可以在其中创建 Sequelize 实例。
要使用此关联,您需要使用相同的 includeDocument 一样的选项:
Product.findAll({
where: {
$and: [
{
public: true,
visible: true,
ancestry: {
$not: null,
},
},
],
},
include: [
{
model: Product,
as: 'parent',
required: false, // or true if parent_id is required field
// or you wish to get all products with parents
attributes: ["name", "slug", "folder_path"],
},
{
model: ormDb.Document,
required: false,
},
],
attributes: ["name", "slug", "folder_path"],
})

关于node.js - 在 sequelize 中加入同一张表并在 excel 中打印,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66779479/

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