Node.js 如何使用baucis在POST请求后获取插入的mongo id
我正在使用express+baucis+mongoose为存储在mongodb中的模型创建一个基本的CRUDAPINode.js 如何使用baucis在POST请求后获取插入的mongo id,node.js,mongodb,express,mongoose,baucis,Node.js,Mongodb,Express,Mongoose,Baucis,我正在使用express+baucis+mongoose为存储在mongodb中的模型创建一个基本的CRUDAPI var app = express(); mongoose.model('workgroup', WorkGroupSchema); baucis.rest('workgroup'); app.use('/api', baucis()); var server = app.listen(4100); 到目前为止,这一切正常,我可以提出任何创建、更新和删除我的工作组的请求
var app = express();
mongoose.model('workgroup', WorkGroupSchema);
baucis.rest('workgroup');
app.use('/api', baucis());
var server = app.listen(4100);
到目前为止,这一切正常,我可以提出任何创建、更新和删除我的工作组的请求
现在,当用户创建工作组时,我需要执行更多操作(更新工作组权限),为此,我需要获取最近创建的工作组的mongo id
我尝试在baucis之后添加另一个express中间件,只处理工作组的post:
app.post('/api/workgroups', workgroupPermissionUpdater.update.bind(workgroupPermissionUpdater));
当调用workgroupPermissionUpdater.update时,我希望在res参数中找到所创建工作组的mongo id(每个中间件都将req、res和next作为参数接收),但它不在那里
有人知道我如何获得创建的工作组的id吗
谢谢 我对此进行了一些研究,并尝试了一些baucis中间件的破解方法,但未能获得令人满意的解决方案(很高兴听到来自社区的其他消息) 最后,我决定将baucis从图片中删除,并通过其他方式提供此功能
您将有权访问新创建的模块实例的实例的所有其他属性。您还可以选择“新建”、“更新”等事件 使用@Andrea_C提到的mongoose中间件看起来是最好的解决方案 您还可以使用在某些情况下更好的传出流:
controller.request('post', function (request, response, next) {
request.baucis.outgoing(function (context, callback) {
// do something with context.doc.id
callback(null, context);
});
next();
});
controller.request('post', function (request, response, next) {
request.baucis.outgoing(function (context, callback) {
// do something with context.doc.id
callback(null, context);
});
next();
});