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,因此最好在一个位置聚合更新逻辑。这就是为什么我更喜欢活动。虽然我也发现了一些问题-。也许你能帮我做这个?