【问题标题】:Save file to mongoDb using socketio-file-upload使用 socketio-file-upload 将文件保存到 mongoDb
【发布时间】:2021-05-01 09:49:18
【问题描述】:

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

【问题讨论】:

    标签: node.js mongodb socket.io


    【解决方案1】:

    您可以使用 socketio-file-upload 将文件从客户端上传到服务器,只是不指定 uploader.dir 所以 uploader.on("saved") 永远不会执行然后您可以通过 uploader.on("complete") 事件和 event.file 获取文件您有文件要存储在 mongodb 中,如 here 所述。

    所以你的代码应该像这样改变

    const uploader = new siofu();
    uploader.listen(socket);
    uploader.on("complete", function(event) {
       const file=  event.file;
       //saving to mongodb
    
    });
    

    【讨论】:

      猜你喜欢
      • 2018-04-02
      • 2018-02-11
      • 2016-02-04
      • 1970-01-01
      • 2018-03-24
      • 2014-06-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多