【问题标题】:How to use a synchronous queries with mongoose on NodeJS server如何在 NodeJS 服务器上使用 mongoose 同步查询
【发布时间】:2019-01-04 11:27:48
【问题描述】:

我尝试使用基于 another post 的 'await' 关键字使用 mongoose ODM 进行同步查询,如下例所示:

 const query= userModel.find({});
 const syncResutlt= await query.exec();
 console.log(syncResutlt);

但我收到此错误消息:

  const result2 = await query.exec();
                        ^^^^^
  SyntaxError: Unexpected identifier

我也试过yield generator 关键字,但我总是得到同样的错误 SyntaxError: Unexpected identifier

有关信息,我有 nodeJs V8。

【问题讨论】:

    标签: node.js mongoose synchronous


    【解决方案1】:

    您只能等待 Promises 或标记为异步的函数,它本质上返回一个 Promise。

    正确方法

    let getUser=async function(user_id){
        let info= await User.findById(user_id);
        console.log(info); // contains user object
    }
    

    方法不正确

    let getUser= function(user_id){
        let info= await User.findById(user_id); //will throw an exception on await keyword
        console.log(info); // contains user object
    }
    

    希望对你有帮助。

    【讨论】:

    • 我很生气 getUser 函数返回 info 对象,但是当我在另一个函数中使用它时,例如 "let data = getUser(1)" => data = {} (empty object)
    猜你喜欢
    • 2020-05-06
    • 1970-01-01
    • 2014-03-28
    • 2014-08-23
    • 2017-05-10
    • 2023-03-28
    • 2020-11-03
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多