如何使用 express-session 和 mongo-connect 在 mongoDB 中正确存储和检索字节数组

问题描述

所以,我正在努力将字节数组以 express 形式发送到 mongo DB。在应用程序中,我使用 connect-mongo 来存储使用 express-session 收集的会话数据,对于所有 JSON 变量,一切正常。但是,当它达到 5MB 时,它对于 UINT8 字节数组之一的变量失败。在应用程序中,我使用以下内容让 mongo 解析原始数据:

mongoose.connect(dbUrl,{
    useNewUrlParser: true,useCreateIndex: true,useUnifiedTopology: true,useFindAndModify: false,promoteBuffers:true //----> Importante para armazenar os buffers na session!!!!!
});

在控制器中,我从浏览器中获取 UINT8 数组,然后将其保存到会话中:

module.exports.getDataGPsolo =async (req,res) => {
if(req.get('Content-Type')==='application/octet-stream'){
    req.session.rawData=req.body;
    // the line send the UINT8 array to mongo
    req.session.fileNum =  Number.parseInt(req.get('fileNum'));
    return res.send('array recived')
}

在另一条路线中,我必须从会话中检索变量,以便控制器可以使用它:

module.exports.processDataGPsolo = async (req,res) => {
    let data = []
    let timing=req.session.timing;
    parsedRawData= Buffer.from(req.session.rawData1); 

最后一行是当代码发出声音时,从会话存储中检索到的数据完全改变了,如果它大到 5 MB(需要的最大大小)。但是,它适用于较小的尺寸。任何帮助表示赞赏。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)