在
将更改保存到其他对象时创建/更新对象的最方便方法是什么?假设我们有一个模型客户端,我们在保存时发出事件。
clientSchema.post('save', function (client) {
process.emit('clientUpdate', client);
});
然后我们可以订阅该事件,例如:
process.on('clientUpdate', function(client) {
//LOGIC GOES HERE
});
假设我们现在要更新客户端投影。您将在哪里找到侦听器以及如何实现mongoDB(猫鼬(的更新逻辑 - 使用模型,由dao等?
我相信
您可以避免发出另一个事件,而只需在保存后的钩子中进行更新。例如:
clientSchema.post('save', function (client, next) {
ClientProjection.update( {/* Query Parameters */},
{/* Data to update */},
function(err, clientProjection) {
next()
}
});
在保存后的钩子中,如果要调用异步函数,则需要添加 next
作为第二个参数,并在异步操作完成后在回调中调用它。请参阅猫鼬中间件文档的Asynchronous Post Hooks
部分