gpt4 book ai didi

node.js - Sails 中模型的独特属性

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

我是SAILS的新手。我有以下型号。

models\Company.js

module.exports = {

attributes: {

name: {
type: 'string',
required: true,
unique: true

},
description: {
type: 'string',
required: true

}
}
};

模型\Project.js

module.exports = {

attributes: {

name: {
type: 'string',
required: true
},

key: {
type: 'string',
required: true,
unique: true
},

description: {
type: 'string'
},

company: {
type: 'string',
required: true
},
startedDateTime: {
type: 'datetime'
},
completedDateTime: {
type: 'datetime'
},
members: {
collection: 'ProjectMember',
via: 'project',
dominant: true
}
};

我需要的模型是这样的,可以有多个公司,但项目对于特定公司来说必须是唯一的,但在两个不同的公司内可以是相同的。我如何修改我的模型以获得这个?

最佳答案

sails 中没有这样的配置选项。

但是您可以使用生命周期回调来手动处理此问题。您可以添加检查 beforeValidate 和 afterValidate 函数。

看这里:http://sailsjs.org/#/documentation/concepts/ORM/Lifecyclecallbacks.html

afterValidate: function(values, cb) {
var params = {company: values.company};
if (values._id) {
params['_id'] = {$not: values._id};
}
Project.find(params).exec(function(err, projects) {
if (projects.length > 0) return cb(new Error('Project already binded'));
cb();
});
}

这只是示例,因此可能无法正常工作,请检查条件和事件。

关于node.js - Sails 中模型的独特属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26844226/

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