如何从猫鼬查询返回值

伐木工人

我正在做一个注册件,在将数据输入到mongo之前先进行一些服务器端验证。我是猫鼬的新手,无法将数据返回到完成所有注册过程的方法中。

在我的机车控制器中,我有一个包装所有内容以启动注册过程的方法。

auth = new Authenticator();
auth.signUp(this.req.body);

在我的auth对象内部,SignUp仅在创建新用户之前通过验证数据来运行。一种验证是数据库中没有创建重复的电子邮件。

this.signUpUser = function(user) {

    if(this.isNotDuplicate(user.email) {
       //continue doing whatever needs done to the data afterwards 
    } else {
        response['error'] = True
        response['response'] = "duplicate email"
    }

}

我尝试的一种方法是寻找匹配并返回true或false的电子邮件。

this.isNotDuplicate = function(email) {

    query = user.findOne({ 'email': email });
    query.exec(function(error, user) {

        if(error) {
            console.log(error);
        }

        console.log(user);
        return (user === null) ? false : true;

     });
}

如果我在那里的数据库中传递一封电子邮件,则在使用console.log()时可以看到用户,但这不允许我返回任何内容,除非它是机车返回响应对象。但是我需要能够继续对数据进行处理。我意识到我可能完全错了,所以如果我的设计不好,我需要解释如何将其更改为与node.js,express和locomotive一起使用。

我已经阅读了有关查询的猫鼬的文档(http://mongoosejs.com/docs/queries.html)。在他们的示例中,他们使用console.log(),但是肯定有一种方法可以使用从其他地方的猫鼬获取的数据,而不仅仅是在猫鼬查询中。如果我的设计不好,那么建议如何更改?或者,我怎样才能从猫鼬查询中返回数据或使用另一个值?

埃文·卢卡斯(Evan Lucas)

您将需要进行this.isNotDuplicate异步。尝试这样的事情:

this.isNotDuplicate = function(email, callback) {
  var query = user.findOne({ 'email': email })
  query.exec(function(err, user) {
    if (err) {
      console.log(err)
      callback(err)
    } else {
      console.log(user)
      cb(null, !!user)
  })
}

然后在检查用户时:

this.signUpUser = function(user) {
  this.isNotDuplicate(user.email, function(err, exists) {
    if (err || exists) {
      response['error'] = true
      response['message'] = (exists) ? 'duplicate email' : 'error'
    } else {
      // continue doing whatever needs to be done
    }
  })
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何查询猫鼬的返回值

来自分类Dev

猫鼬:仅返回值

来自分类Dev

如何创建支持空值并返回全部的猫鼬查询

来自分类Dev

NodeJS猫鼬-不从异步函数返回值

来自分类Dev

猫鼬从withTransaction回调返回值

来自分类Dev

如何使用猫鼬将查询结果返回到变量

来自分类Dev

猫鼬:如何查询嵌套文档并返回String结果?

来自分类Dev

如何使用猫鼬将查询结果返回到变量

来自分类Dev

如何在猫鼬查询方法中返回错误?

来自分类Dev

如何修复返回空数组的猫鼬查询

来自分类Dev

如何从猫鼬查询回调中访问特定值?

来自分类Dev

如何从猫鼬mongodb查询中获取字段的值?

来自分类Dev

如何从猫鼬mongodb查询中获取字段的值?

来自分类Dev

未定义的返回值猫鼬/ Node.js递归函数

来自分类Dev

猫鼬查询返回多个结果

来自分类Dev

猫鼬:如何查询引用对象的属性?

来自分类Dev

猫鼬:如何分割整个查询?

来自分类Dev

如何用.sort()查询猫鼬

来自分类Dev

猫鼬:如何通过对象的键查询

来自分类Dev

猫鼬如何查询关系文件?

来自分类Dev

如何加入然后对猫鼬进行查询

来自分类Dev

如何根据OR条件查询猫鼬

来自分类Dev

如何修改猫鼬查询的输出?

来自分类Dev

按顺序执行猫鼬查询,然后先返回成功找到内容的猫鼬查询

来自分类Dev

在猫鼬查询返回集合之前,应用程序应如何处理http获取响应?

来自分类Dev

如何计算猫鼬查询返回的文档所使用的磁盘空间(字节)?

来自分类Dev

如何通过猫鼬查询返回嵌入式文档的过滤结果

来自分类Dev

如何对猫鼬查询中返回的每个文档执行异步方法

来自分类Dev

当类型不兼容时,如何使猫鼬查找查询返回 null 而不是抛出 CastError ?

Related 相关文章

  1. 1

    如何查询猫鼬的返回值

  2. 2

    猫鼬:仅返回值

  3. 3

    如何创建支持空值并返回全部的猫鼬查询

  4. 4

    NodeJS猫鼬-不从异步函数返回值

  5. 5

    猫鼬从withTransaction回调返回值

  6. 6

    如何使用猫鼬将查询结果返回到变量

  7. 7

    猫鼬:如何查询嵌套文档并返回String结果?

  8. 8

    如何使用猫鼬将查询结果返回到变量

  9. 9

    如何在猫鼬查询方法中返回错误?

  10. 10

    如何修复返回空数组的猫鼬查询

  11. 11

    如何从猫鼬查询回调中访问特定值?

  12. 12

    如何从猫鼬mongodb查询中获取字段的值?

  13. 13

    如何从猫鼬mongodb查询中获取字段的值?

  14. 14

    未定义的返回值猫鼬/ Node.js递归函数

  15. 15

    猫鼬查询返回多个结果

  16. 16

    猫鼬:如何查询引用对象的属性?

  17. 17

    猫鼬:如何分割整个查询?

  18. 18

    如何用.sort()查询猫鼬

  19. 19

    猫鼬:如何通过对象的键查询

  20. 20

    猫鼬如何查询关系文件?

  21. 21

    如何加入然后对猫鼬进行查询

  22. 22

    如何根据OR条件查询猫鼬

  23. 23

    如何修改猫鼬查询的输出?

  24. 24

    按顺序执行猫鼬查询,然后先返回成功找到内容的猫鼬查询

  25. 25

    在猫鼬查询返回集合之前,应用程序应如何处理http获取响应?

  26. 26

    如何计算猫鼬查询返回的文档所使用的磁盘空间(字节)?

  27. 27

    如何通过猫鼬查询返回嵌入式文档的过滤结果

  28. 28

    如何对猫鼬查询中返回的每个文档执行异步方法

  29. 29

    当类型不兼容时,如何使猫鼬查找查询返回 null 而不是抛出 CastError ?

热门标签

归档