使用socketio-file-upload保存文件到mongoDb



我是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
});

最新更新