gpt4 book ai didi

javascript - 如何限制 sequelize create() 函数的结果只返回我想要的值?

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

我将 Node.js 和 Express 与 Sequelize 一起使用。我目前有一个用户模型定义为:

const Users = sequelize.define("Users", {
id: {
type: DataType.INTEGER,
primaryKey: true,
autoIncrement: true
},
username: {
type: DataType.STRING,
unique: true,
allowNull: false,
validate: {
notEmpty: true
}
},
email: {
type: DataType.STRING,
unique: true,
allowNull: false,
validate: {
notEmpty: true,
isEmail: true
}
},
password: {
type: DataType.STRING,
allowNull: false,
validate: {
notEmpty: true
}
}
}

现在要创建一个新用户,我使用以下代码块:
  app.post("/register", (req, res, next) => {
Users.create(req.body)
.then(user => {
res.json({
status: "success",
data: user
});
})
.catch(err =>
next(err)
)
});

我得到以下结果:
{
"status": "success",
"data": {
"id": 6,
"username": "brightuser",
"email": "bright@user.com",
"password": "$2a$10$xfWi5QFoEs0sFRyLrDqa7e77A4JTYoX.J/N5rK0QJFR2bf0AtWJZe",
"updated_at": "2017-04-16T04:32:16.519Z",
"created_at": "2017-04-16T04:32:16.519Z"
}
}

我想限制向看到响应的客户端公开的数据。我只想显示如此创建的记录的用户名和电子邮件。如何在 Users.create() 中实现这样的事情功能?

最佳答案

Sequelize 无法过滤 create 上的数据

您有 2 个选项,您可以自己删除/选择不需要的数据,或者在创建后进行提取并进行后续查找。

像这样:

const result = {
"status": "success",
"data": {
"id": 6,
"username": "brightuser",
"email": "bright@user.com",
"password": "$2a$10$xfWi5QFoEs0sFRyLrDqa7e77A4JTYoX.J/N5rK0QJFR2bf0AtWJZe",
"updated_at": "2017-04-16T04:32:16.519Z",
"created_at": "2017-04-16T04:32:16.519Z"
}
}

delete result.data.password
delete result.data.updated_at
delete result.data.created_at

关于javascript - 如何限制 sequelize create() 函数的结果只返回我想要的值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43439394/

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