gpt4 book ai didi

javascript - SailsJS 在创建具有关联的对象时触发更新

转载 作者:行者123 更新时间:2023-11-28 00:44:57 27 4
gpt4 key购买 nike

我正在使用 Sails v0.10.5。

我创建了三个模型,它们之间存在关联。存在一个Candidate 模型、一个Evaluator 模型和一个Rating 模型,评估者通过该模型对候选人进行评分。我正在使用 Waterline 关联自动跟踪从 RatingEvaluatorCandidate 的外键。

我还使用 Blueprint 自动处理这些模型的所有 CRUD 路由。

不幸的是,每当我通过 Blueprint 使用诸如 http://localhost:1337/rating/create? rating=4&comment=Great&evaluator=3&candidate=2 之类的 url 创建新候选时,除了触发之外预期的 CREATE,sails 也会返回并调用 2 个 UPDATE,在此期间正在设置每个 CandidateEvaluator 的外键。

这导致我的应用程序前端出现问题,因为它接收到 UPDATE 事件而不是 CREATE 事件,并且没有必要的上下文来正确处理来自服务器的新数据。

任何解决此问题的建议都会很有帮助!

以下是 Waterline 模型:

/api/models/Candidate.js:

module.exports = {
schema: true,
attributes: {
name: {
type: 'string',
required: true
},
status: {
type: 'string',
required: true
},
role: {
type: 'string',
required: true
},
ratings: {
collection: 'rating',
via: 'candidate'
}
}
};

/api/models/Evaluator.js:

module.exports = {
schema: true,
attributes: {
name: {
type: 'string',
required: true
},
title: {
type: 'string',
required: true
},
role: {
type: 'string',
required: true
},
ratings: {
collection: 'rating',
via: 'evaluator'
}
}
};

/api/models/Rating.js:

module.exports = {
schema: true,
attributes: {
rating: {
type: 'integer',
required: true
},
comment: {
type: 'string',
required: false
},
evaluator: {
model: 'evaluator',
required: true
},
candidate: {
model: 'candidate',
required: true
}
}
};

最佳答案

我遇到了类似的问题。您可以在更新事件中创建一个过滤器来检查某些变量是否已更新,如果更新了,则调用一些影响您前端的函数。

关于javascript - SailsJS 在创建具有关联的对象时触发更新,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27515608/

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