gpt4 book ai didi

javascript - 在 sequelize 中不使用 dataValues 对象访问变量

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

只是想知道为什么我可以访问从 Sequelize 返回的属性,即使我引用的对象上似乎不存在这些值。
例如:
Sequelize 回应:

[
Job {
dataValues: {
id: 2,
title: 'some job'
},
// ... more model variables
},
Job {
dataValues: {
id: 3,
title: 'another job'
},
// ... more model variables
}
]
鉴于上述响应,我可以访问第一个条目的标题值 result[0].title result[0].dataValues.title 。但是,如果我使用 Sequelize 函数来格式化 createdAt col 在不使用 .dataValues 的情况下不可用 :
exports.test = (req, res, next) => {
Job.findAll({
attributes: [
'title',
'createdAt',
[Sequelize.fn('date_format', Sequelize.col('job.createdAt' ), '%d/%m/%y'), 'date'] // *Only* accessible with inside the dataValues object
]
}).then(results => {
console.log(results[0].date); // undefined
console.log(results[0].dataValues.date); // '09/06/21'

res.status(200).send();
}).catch(err => next(err));
}
我只是想知道 a) 这些变量是如何在不引用 dataValues 对象的情况下访问的,以及 b) 为什么格式函数的结果不是。
不幸的是,我无法在 Sequelize 文档中找到答案,所以如果有人能启发我或指出我的答案,我将不胜感激!
谢谢

最佳答案

在没有更多知识的人的情况下,我认为这取决于提供自定义 getter 的 Sequelize 对象。console.log(Object.keys(results[0].__proto__)); 输出包括 _customGetters 在内的 Sequelize 方法。
我不知道如何更详细地查看它们,但我认为这解释了为什么我可以访问 dataValues 对象之外的变量。
也许有限的信息对其他人有用,如果他们也很难理解这一点:)

关于javascript - 在 sequelize 中不使用 dataValues 对象访问变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67978183/

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