【问题标题】:How to get the ID from a newly created database entry for a redirect - Mongoose如何从新创建的数据库条目中获取 ID 以进行重定向 - Mongoose
【发布时间】:2020-11-28 03:41:11
【问题描述】:

在 Node.JS 中使用 MongoDB 和 Mongoose。我正在尝试保存数据库并获取新创建的重定向 ID。我知道 save() 可以将 id 作为回调。但是,我收到错误:SyntaxError: Invalid destructuring assignment target on the argument req.body in the line

Count.save(err, req.body) => {

完整代码:

// @desc    Process the count form
// @route   POST /session/create
router.post('/session/create', async (req, res) => {
    req.body.user = req.user.id
    await Count.save(err, req.body) => {
        if(err) { 
            next(err); 
        }
        const itemID = req.body._id;
        res.redirect('/new-page' + itemID);
    }
});

Count.create(req.body) 将在数据库中创建条目,但我的理解是它不会返回 id。我不明白为什么 req.body 在一个实例中是一个有效的参数而不是另一个?

【问题讨论】:

    标签: node.js mongodb mongoose


    【解决方案1】:

    想出了答案。必须先创建实例,然后传入信息。下面是工作中的 POST 请求以及重定向的 GET 请求

    // @desc    Process the count form
    // @route   POST /session/create
    router.post('/create', (req, res) => {
        let session = new Count();
        session.name = req.body.name;
        session.email = req.body.email;
        session.user = req.user.id
        session.save(function (err, start) {
            if(err)
            {console.log(err);
            }
            else {
                console.log(start.id)
            }
        });
        console.log(session.id)
        res.redirect('/session/' + session.id)
    });
    
    
    // @desc    Continuation of session 
    // @route   GET /session/:id
    router.get('/:id', ensureAuth, (req, res) => {
            res.render('session/add')
    });
    
    

    【讨论】:

      猜你喜欢
      • 2023-03-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-02-17
      • 2010-10-12
      • 1970-01-01
      相关资源
      最近更新 更多