Node.js mongoose如何在单个路由中保存多个集合

Node.js mongoose如何在单个路由中保存多个集合,node.js,express,mongoose,Node.js,Express,Mongoose,我想在一条快速路线中保存多个集合。我在我的express route文件中使用以下代码 const userinfo = require('../models/userinfo'); const userdtls = require('../models/userdtls'); router.post('/add', function(req, res) { mongoose.connect(config.DB,{ useNewUrlParser: true }, function (er

我想在一条快速路线中保存多个集合。我在我的express route文件中使用以下代码

const userinfo = require('../models/userinfo');
const userdtls = require('../models/userdtls');

router.post('/add', function(req, res) {
  mongoose.connect(config.DB,{ useNewUrlParser: true }, function (err) { 
    if (err) throw err;     
    let newuserdtls = new userdtls({
      userid: '1001',
      username: req.body.username      
    })  
    newuserdtls.save()
      .then(result => {
           res.json(result);         
           console.log('successfully inserted');
      })
      .catch(err => {
        res.json(err)
        console.log('inserted failed',err);
      })      
    let newuserinfo = new userinfo({
      userid: '1001',
      username: req.body.username,
      gender: req.body.gender,
      class: req.body.class,
      status: req.body.status   
    })
    newuserinfo.save()
      .then(result => {
           res.json(result);          
           console.log('successfully inserted');
      })
      .catch(err => {
        res.json(err)
        console.log('inserted failed',err);
      })      
  })
})
我想在这两个模型中插入单个事务。两者都应成功插入。如果一个失败了,另一个也应该失败。我还收到“ERR\u HTTP\u HEADERS\u SENT:在发送到客户端后无法设置头”使用此代码,但这可能是因为res.send两次。请让我知道如何将两个保存和响应合并为一个


谢谢

您可以在
中保存第二条记录,然后在第一条记录的
块中保存

或者有更好的方法使用
async/await
try/catch

router.post('/add', async function(req, res) {
  try {
    await mongoose.connect(config.DB,{ useNewUrlParser: true });
    let newuserdtls = new userdtls({
      userid: '1001',
      username: req.body.username      
    })  
    await newuserdtls.save();  
    let newuserinfo = new userinfo({
      userid: '1001',
      username: req.body.username,
      gender: req.body.gender,
      class: req.body.class,
      status: req.body.status   
    })
    await newuserinfo.save();
    res.json(YOUR_RESULT);   
  } catch(err) {
    // Handle error here
  }
})

我尝试了建议的解决方案,但出现了错误。等待mongoose.connect(config.DB,{useNewUrlParser:true});^SyntaxError:await仅在async函数中有效您是否尝试在
函数(req,res)
之前添加async?我的错误。我忘了把async放在函数之前。谢谢。它现在正在工作。