我是mongo和socketio-file-upload(siofu)的新手,无法找到如何保存我从siofu到mongoDB而不是hdd的文件。所以我在服务器端输入:
const uploader = new siofu();
uploader.dir = "./public/uploads";
uploader.listen(socket);
uploader.on("saved", function(event) {
//const fileBody = event.file['someProperty'] //maybe I should take some prop here
// should I make transformation fileBody to BSON ?
const fileMsg = {room: roomId, from: userName}
message.save(fileMsg, (result) => {
io.in(roomId).emit(NEW_CHAT_MESSAGE_EVENT, fileMsg);
})
});
您可以使用socketio-file-upload将文件从客户端上传到服务器,只是不指定uploader.dir
,因此uploader.on("saved")
永远不会执行,然后您可以通过uploader.on("complete")
事件和event.file
获得文件,您有文件存储在mongodb中,如此处所述。
const uploader = new siofu();
uploader.listen(socket);
uploader.on("complete", function(event) {
const file= event.file;
//saving to mongodb
});