node.js - 如何从新创建的数据库条目中获取 ID 以进行重定向 - Mongoose
问题描述
在 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 在一个实例中是一个有效的论点而不是另一个?
解决方案
想出了答案。必须先创建实例,然后传递信息。下面是工作的 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')
});
推荐阅读
- swiftui - SwiftUI & UIViewRepresentable 不一致的行为:为什么相同的代码在不同的项目中不起作用?
- python - python sqlite查询选择用多个零填充的文本
- node.js - 使用刷新令牌来获取新的访问令牌反应和节点 js
- asp.net - 发送邮件后,消息显示错误:您的查询已成功发送
- django - 返回不带http的图片的url
- python - 查找包含最少操作的字符串以使所有字符相同
- github - 如何在每次提交时不断地将 GitLab 代码存储库镜像到 GitHub 存储库?
- c - 如何强制 arm gcc 编译器不对未对齐的内存使用 32 位访问
- spring - Tomcat 战争部署在使用注释而不是 web.xml 时给出 404
- mysql - MYSQL 连接表创建新列