gpt4 book ai didi

node.js - 防止 jugglingDB 中的构造函数设置模型属性

转载 作者:太空宇宙 更新时间:2023-11-04 01:09:41 25 4
gpt4 key购买 nike

使用 JugglingDB 在 Node 应用程序中给出用户模型

User = schema.define('User', {
name : String,
email : String,
API_KEY : String,
created : {type: Date, default: Date.now},
});

我希望 API_KEY 属性为“只读”。所以数据如下:

var data = {
name : 'Test account',
email : 'test@test.com',
API_KEY : 'Some key'
}

被接受为:

var data = {
name : 'Test account',
email : 'test@test.com'
}

在:

var user = new User(data);

这样只有服务器才能为用户创建API_KEY。这可能吗?

最佳答案

您可以通过使用钩子(Hook)来做到这一点。特别是,您可以使用 beforeCreatebeforeUpdate Hook ,每当创建新用户或更新其属性时都会执行该 Hook 。

例如,您可以在用户创建时分配服务器生成的 API key ,并使用以下 Hook 确保以后不会更改:

User.beforeCreate = function(next, data) {
data.API_KEY = server_generate_api_key();
next();
};

User.beforeUpdate = function(next, data) {
delete data.API_KEY;
next();
};

或者,您可以查看 beforeSave Hook 。

关于node.js - 防止 jugglingDB 中的构造函数设置模型属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19198188/

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