SailsJS V1 - 蓝图查询无法正常工作

Posted

技术标签:

【中文标题】SailsJS V1 - 蓝图查询无法正常工作【英文标题】:SailsJS V1 - Blueprint query not working correctly 【发布时间】:2019-07-05 08:57:45 【问题描述】:

我正在尝试为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。我可能会寻找另一种方式或覆盖默认控制器操作。 【参考方案1】:

嘿,'find' 返回 object array,而 'findone' 只返回一个 object。我想因此它不会起作用!

【讨论】:

以上是关于SailsJS V1 - 蓝图查询无法正常工作的主要内容,如果未能解决你的问题,请参考以下文章

SailsJs websocket与自定义路线而不是蓝图?

单击蓝图幻灯片和推送菜单的文档时侧边栏菜单隐藏,无法正常工作

Sails JS 和 mySQL 自定义 ID 名称不适用于蓝图

Bootstrap3.js 和 Wordpress jQuery v1.10.2 无法正常工作

在sails.js 中覆盖CRUD 蓝图

与你相遇好幸运,Sailsjs查询