Node.js在另一个数据库中保存事件时更新数据库对象

Node.js在另一个数据库中保存事件时更新数据库对象,node.js,events,mongoose,Node.js,Events,Mongoose,在保存对其他对象的更改时,创建/更新对象最方便的方法是什么?假设我们有一个模型客户端,在保存时发出事件 clientSchema.post('save', function (client) { process.emit('clientUpdate', client); }); 然后我们可以订阅该活动,如: process.on('clientUpdate', function(client) { //LOGIC GOES HERE }); 假设我们现在要更新ClientProj

在保存对其他对象的更改时,创建/更新对象最方便的方法是什么?假设我们有一个模型客户端,在保存时发出事件

clientSchema.post('save', function (client) {
    process.emit('clientUpdate', client);
});
然后我们可以订阅该活动,如:

process.on('clientUpdate', function(client) {
  //LOGIC GOES HERE
});

假设我们现在要更新ClientProjection。您将在何处找到侦听器,以及如何实现mongoDB(mongoose)的更新逻辑—使用model、by dao等?

我相信您可以避免发出另一个事件,只需在post save挂钩中进行更新。例如:

clientSchema.post('save', function (client, next) {
    ClientProjection.update( {/*  Query Parameters */}, 
                             {/* Data to update */}, 
                             function(err, clientProjection) {
                                 next()
                             }
});

在post save hook中,如果要调用异步函数,则需要添加
next
作为第二个参数,并在异步操作完成后在回调中调用它。请参见

异步Post钩子
部分。它看起来不错,但有多个Post保存钩子用于更新ClientProjection,因此最好在一个位置聚合更新逻辑。这就是为什么我更喜欢活动。虽然我也发现了一些问题-。也许你能帮我做这个?