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

创build/更新对象保存到其他的更改最方便的方法是什么? 想象一下,我们有一个模型客户端,我们发出保存事件。

clientSchema.post('save', function (client) { process.emit('clientUpdate', client); }); 

那么我们可以订阅这样的事件:

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

假设我们现在想更新ClientProjection。 你将在哪里find监听器,以及如何实现mongoDB(mongoose)的更新逻辑 – 使用模型,dao等?

我相信,你可以避免发射另一个事件,只是在后保存钩子进行更新。 例如:

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

在后保存钩子中,如果要调用asynchronous函数,则需要添加next作为第二个参数,并在asynchronous操作完成时在callback中调用它。 请参阅mongoose中间件文档的Asynchronous Post Hooks部分