Sails.JS关联验证

Sails.JS关联验证,sails.js,waterline,Sails.js,Waterline,我在Sails.JS中使用了几个一对多的关联,如下所示: 用户 email: { type: 'string', required: true, unique: true }, projects: { collection: 'project', via: 'user' } 项目 name: { type: 'string', required: true, minLength: 3, maxLength: 50 }, u

我在Sails.JS中使用了几个一对多的关联,如下所示:

用户

email: {
    type: 'string',
    required: true,
    unique: true
},
projects: {
    collection: 'project',
    via: 'user'
}
项目

name: {
    type: 'string',
    required: true,
    minLength: 3,
    maxLength: 50
},
user: {
    model: 'user',
    required: true
},
sites: {
    collection: 'site',
    via: 'project'
}
站点

project: {
    model: 'project',
    required: true
},
name: {
    type: 'string',
    required: true
}
现在,当我向/project发出POST请求时,它会创建项目fine,并指定参数“user”(取自会话)将项目与该特定用户关联

当我创建一个新站点时也是如此。但是,我似乎能够为param“project”指定任何数字,即使特定的项目ID不存在。事实上,如果项目不存在,并且没有创建站点,那么它将无法通过验证。我想它应该查找与project的关联,并检查指定的project ID是否有效

另外,我只希望能够创建一个与属于当前用户的项目关联的站点。我该怎么做呢


提前感谢。

我不确定这是一个bug还是您不存在的项目ID关联的预期行为,但一个解决方法是在您的模型中创建
之前使用
钩子来验证项目ID是否存在:

//在您的站点模型中
beforeCreate:函数(值,下一步){
...
var projectID=值['project'];
Project.findOne(projectID,function(err,Project){
如果(err | |!project)返回next(“一些错误消息”);
返回next();
});
}