所以,我正在努力将字节数组快速传递给 mongo DB。在应用程序中,我使用 connect-mongo 来存储使用 express-session 收集的会话数据,并且对于所有 JSON 变量来说一切正常。但是,当变量之一是 UINT8 字节数组时,当它变得高达 5MB 时,它会失败。在应用程序中,我使用以下内容获取 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(需要最大大小)。但是,它适用于较小的尺寸。任何帮助表示赞赏。