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
部分