将两个 MongoDB 数据渲染到一个 EJS 文件

Render two MongoDB data to an EJS file

这是我要发送给myaccount.ejs

的数据之一
app.get("/myaccount", (req, res)=>{
  if(req.isAuthenticated()){
  const user_files = File.find();
    user_files.exec(function(err, data1){
      if(err){
        console.log(err);
      } else {
          res.render("myaccount", {file: data1});
      }
    })

下面这段代码是我要发送给myaccount.ejs的第二个数据。

app.get("/myaccount", (req, res)=>{
  if(req.isAuthenticated()){
  const user = User.find();
    user.exec(function(err, data2){
      if(err){
        console.log(err);
      } else {
          res.render("myaccount", {user: data2});
      }
    })

如何将它们一起发送到我的 ejs 文件。

您可以使用 async/await 来获得更简洁的代码。


app.get("/myaccount", async (req, res, next)=>{
 try {
   if(!req.isAuthenticated()){
     throw new Error('Not Authenticated!');
   }
   const file = await File.find({}).exec();
   const user = await User.find({}).exec();

   if(!file || !user){
    throw new Error('User or file not found.')
   }
 
   res.render("myaccount", {user, file});
 }
 catch(err){
   return next(err);
 }

})