gpt4 book ai didi

node.js - 如何从sequelize中收到的对象中删除属性?

转载 作者:太空宇宙 更新时间:2023-11-04 00:00:49 24 4
gpt4 key购买 nike

我有一个模型,需要在查询的 where 子句中输入日期。

const Model = sequelizeTwo.define('model', {
A: Sequelize.BIGINT,
B: Sequelize.DOUBLE,
C: Sequelize.DOUBLE,
D: Sequelize.DOUBLE,
E: Sequelize.DOUBLE,
F: Sequelize.DOUBLE,
DATE: Sequelize.DATEONLY,
newCol: Sequelize.VIRTUAL

},{
tableName: "Model",
timestamps: false,
freezeTableName: true
})
这里的

DATE用作查询的参数,以在客户端上显示信息。但它的用途就到此为止了。我不想将 DATE 发送回客户端,但我看不出有什么办法可以将其删除。

如果我从模型中删除它,它会给出时区错误,这也是另一个问题。

app.get('/api/:date', (req, res) => {
var date = req.params.date

Model.findAll({
where: {
DATE: {
[Op.eq]: date
}
},
order: [
['A', 'ASC']
]
}).then(result => {

...

for (i; i < result.length; i++) {

...
delete result[i].DATE
console.log(result[i].DATE)
result[i]["newCol"] = values;
}
res.json(result);
})
})

我尝试过在循环内部和外部使用删除运算符,但没有用。它仍然保留该属性并将其发送回客户端

            delete result[i].DATE //Inside loop
            delete result.DATE //before loop

分配完成后,值会更新,但属性/键无法修改。

           result[i].DATE = null or undefined

我想在这里实现的是,我只想发回一个对象,该对象具有 Sequelize 模型中的所有属性除了 DATE

最佳答案

我认为您应该在这种情况下使用排除功能:

Model.findAll({
where: {
DATE: {
[Op.eq]: date
}
},
order: [
['A', 'ASC']
],
attributes: { exclude: ['DATE'] }
})

更多信息请点击:sequelize documentation

关于node.js - 如何从sequelize中收到的对象中删除属性?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54780920/

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