Javascript 使用猫鼬无法获得响应

Javascript 使用猫鼬无法获得响应,javascript,mongoose,Javascript,Mongoose,我正在使用Mongoose在我的MongoDB数据库中创建一个文档,代码如下: workoutsRouter.post('/', async (req, res) => { await mongoose.connect('mongodb+srv://nalanart:<password>@cluster0.2iplh.mongodb.net/workout-app-db?retryWrites=true&w=majority', { useNewUrlPars

我正在使用Mongoose在我的MongoDB数据库中创建一个文档,代码如下:

workoutsRouter.post('/', async (req, res) => {
  await mongoose.connect('mongodb+srv://nalanart:<password>@cluster0.2iplh.mongodb.net/workout-app-db?retryWrites=true&w=majority', 
  { useNewUrlParser: true, useUnifiedTopology: true })

  await Workout.create({
    mains: req.body.mains,
    accessories: req.body.accessories
  }, err => {
    if(err) {
      throw err
    } else {
      res.sendStatus(201)
    }
  })
})
workoutsRouter.post('/',异步(req,res)=>{
等待mongoose.connect('mongodb+srv://nalanart:@cluster0.2iplh.mongodb.net/训练应用程序db?retryWrites=true&w=maist',
{useNewUrlParser:true,useUnifiedTopology:true})
等待训练。创建({
电源:要求主体电源,
附件:要求的主体附件
},err=>{
如果(错误){
失误
}否则{
res.sendStatus(201)
}
})
})
我的问题是它没有像我写的那样发送201状态。知道为什么吗?它只是说发送。。。论邮递员


这里它出现在我的收藏中:

是的,因为你们都在等待并传递回调。您混合了
wait
和回调语法。如果您向Mongoose传递回调,它将不会返回承诺,因此将永远等待它,因为它永远不会解决。
等待它,或者向它传递回调,而不是两者都传递。另外,请尝试
res.status(201.end()


那就意味着猫鼬没有联系。只要Mongoose没有连接到数据库,它就是挂起的,不会抛出错误。您可以启动查询和所有操作,在Mongoose连接之前,它们将一直处于挂起状态。现在可以开始工作了,谢谢!在我进行保存时,由于某种原因,nodemon没有重新启动我的服务器,所以只能手动重新启动。。。
 try {
     await Workout.create({
         mains: req.body.mains,
         accessories: req.body.accessories
     });

     res.status(201).end();
 } catch (err) {
     throw err
 }