在将更改保存到其他对象时创建/更新对象的最方便方法是什么?想象一下,我们有一个模型客户端,我们在保存时发出事件。
clientSchema.post('save', function (client) {
process.emit('clientUpdate', client);
});
然后我们可以订阅该事件,如:
process.on('clientUpdate', function(client) {
//LOGIC GOES HERE
});
我们假设我们现在想要更新ClientProjection。你将在哪里找到监听器以及如何为mongoDB(mongoose)实现更新逻辑 - 使用model,by dao等?
答案 0 :(得分:0)
我相信你可以避免发出另一个事件,只是在保存后的钩子中进行更新。例如:
next
在后保存挂钩中,如果要调用异步函数,则需要添加Asynchronous Post Hooks
作为第二个参数,并在异步操作完成时在回调中调用它。请参阅mongoose Middleware docs
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.InputStream;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.Iterator;
import org.apache.poi.hssf.usermodel.HSSFObjectData;
import org.apache.poi.hssf.usermodel.HSSFWorkbook;
import org.apache.poi.poifs.filesystem.DirectoryNode;
import org.apache.poi.poifs.filesystem.DocumentEntry;
import org.apache.poi.poifs.filesystem.Entry;
import org.apache.poi.poifs.filesystem.NPOIFSFileSystem;
import org.apache.poi.poifs.filesystem.POIFSFileSystem;
import org.apache.poi.util.IOUtils;
public class TestEmbedded {
public static void main(String[] args) throws Exception {
String path = "DummyParent.xls";
File file = new File(path);
POIFSFileSystem fs = new POIFSFileSystem(new FileInputStream(file));
HSSFWorkbook wb = new HSSFWorkbook(fs.getRoot(), true);
for (HSSFObjectData obj : wb.getAllEmbeddedObjects()) {
System.out.println(obj.getDirectory()+"***************HSSFObject data value************"+obj.getOLE2ClassName());
String oleName = obj.getOLE2ClassName();
System.out.println("Has directory Entry node"+obj.hasDirectoryEntry());
DirectoryNode dn = (DirectoryNode)obj.getDirectory();
Iterator<Entry> ab = dn.getEntries();
System.out.println("The entries in the directory node are"+dn.getEntries()+"And also the count"+dn.getEntryCount());
if(oleName.contains("Worksheet")){
HSSFWorkbook hssfWorkbook = new HSSFWorkbook(dn,fs,false);
int number = hssfWorkbook.getNumberOfSheets();
System.out.println("The number of sheets in the Embedded excel - xls"+number);
}
}
}
}
部分