Javascript 如何添加更严格版本的“findOne”,如果未找到所有模型的记录,该版本将返回错误?

Javascript 如何添加更严格版本的“findOne”,如果未找到所有模型的记录,该版本将返回错误?,javascript,node.js,sails.js,waterline,Javascript,Node.js,Sails.js,Waterline,在sailsjsforapi中,在执行其他逻辑之前,我们获取一个资源并检查它是否存在 我如何在一个地方为所有模型实现一个函数,比如说findOneStrict,该函数调用回调时会出现一些特定的一致性错误?不管是哪一个,它都必须是一样的。 这样的函数可以节省跨API端点的大量代码重复 理想情况下,它应该支持填充关联 当前代码示例: sendSurpriseGift: function(req, res) { async.auto({ user: function(callback) {

在sailsjsforapi中,在执行其他逻辑之前,我们获取一个资源并检查它是否存在

我如何在一个地方为所有模型实现一个函数,比如说
findOneStrict
,该函数调用回调时会出现一些特定的一致性错误?不管是哪一个,它都必须是一样的。
这样的函数可以节省跨API端点的大量代码重复

理想情况下,它应该支持
填充
关联

当前代码示例:

sendSurpriseGift: function(req, res) {
  async.auto({
    user: function(callback) {
      User.findOne(userId).populate('hobby').exec(function(err, user) {
        if (err)
          return callback(err);
        if (!user)
          return callback({status: 'NOT_FOUND'});

        return callback(null, user);
      }
    }),
    sendGift: ['user', function(callback, results) {
      var user = results.user;
      // Gift sending logic
      // more logic
    }],
  }, function(err, results) {
       if (err) {
         if (err.status === 'NOT_FOUND') 
           return res.notFound(err);
         return res.serverError(err);
       }
       return res.ok({status: 'OK'});
  });
}

任何一致的错误都会起作用。你能为MySQL提供一些建议吗?我不知道Sails,但它使用的ORM似乎可以选择模型。在这种情况下,您可以编写一个通用的
findOneStrict
实现,并将其用于所有模型。任何一致的错误都会起作用。你能为MySQL提供一些建议吗?我不知道Sails,但它使用的ORM似乎可以选择模型。在这种情况下,您可以编写一个通用的
findOneStrict
实现,并将其用于所有模型。