Node.js 如何在NodeJS服务器上使用mongoose同步查询

Node.js 如何在NodeJS服务器上使用mongoose同步查询,node.js,mongoose,synchronous,Node.js,Mongoose,Synchronous,我尝试使用mongoose ODM和'await'关键字进行同步查询,如下所示: const query= userModel.find({}); const syncResutlt= await query.exec(); console.log(syncResutlt); 但我得到了这个错误信息: const result2 = await query.exec(); ^^^^^ SyntaxError: Unexpected

我尝试使用mongoose ODM和'await'关键字进行同步查询,如下所示:

 const query= userModel.find({});
 const syncResutlt= await query.exec();
 console.log(syncResutlt);
但我得到了这个错误信息:

  const result2 = await query.exec();
                        ^^^^^
  SyntaxError: Unexpected identifier
我也尝试了
yield
generator关键字,但总是出现同样的错误
SyntaxError:意外标识符


有关信息,请参阅nodeJs V8。

您只能等待承诺或标记为async的函数,该函数本质上返回承诺

正确的方法

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
}
不正确的方式

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={}(空对象)