Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/visual-studio-code/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Node.js 如何使用baucis在POST请求后获取插入的mongo id_Node.js_Mongodb_Express_Mongoose_Baucis - Fatal编程技术网

Node.js 如何使用baucis在POST请求后获取插入的mongo id

Node.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); 到目前为止,这一切正常,我可以提出任何创建、更新和删除我的工作组的请求

我正在使用express+baucis+mongoose为存储在mongodb中的模型创建一个基本的CRUDAPI

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();
});