【发布时间】:2025-12-13 06:50:02
【问题描述】:
我正在尝试为sailsjs v1 模型创建蓝图查询。
该模型是一个有 2 个“选项”的 BlogPost。一个是目标,另一个是状态。
如果目标是站点并且状态是已发布,则查询应该返回,否则不返回。我正在使用 Sails(蓝图)提供的默认 REST 路由,如果我尝试找到所有路由,一切正常。但是,如果我尝试通过 ID 查找...我什至无法找回状态为“未发布”的那些。
这是我在blueprint.js parseBlueprintOptions 中的代码 ->
parseBlueprintOptions: function (req) {
var queryOptions = req._sails.hooks.blueprints.parseBlueprintOptions(req);
if (queryOptions.using === 'blogpost') {
if (req.options.blueprintAction === 'create') {
queryOptions.newRecord.user_id = req.session.user.id;
return queryOptions;
} else if (req.options.blueprintAction === 'update') {
queryOptions.criteria.where.user_id = req.session.user.id;
queryOptions.valuesToSet.user_id = req.session.user.id;
return queryOptions;
} else {
if (req.session.administrator) {
return queryOptions;
} else {
queryOptions.criteria.where.blogpost_target = 'Site';
queryOptions.criteria.where.blogpost_status = 'Published';
console.log(queryOptions);
return queryOptions;
}
}
}
}
};
关于为什么没有为findOne 触发查询的任何提示?正如我所说,无论状态/目标如何,它都会返回。
【问题讨论】:
-
这是否显示任何错误消息或执行请求?
-
没有错误。我在他们的 github 上发布,显然
findOne只支持 ID。我可能会寻找另一种方式或覆盖默认控制器操作。
标签: javascript node.js sails.js