当用户在我的应用程序中搜索并且仅键入一个字符时,服务器会接收到他的请求并使用该请求构建NoSql查询(基于特定的配置,该示例可能不需要)。
但这是仅键入一个字母时查询的结果:
[ { '$match':
{ status: [Object],
'$text': [Object],
_supplier: 5c2e22779389ca0ade28ee30 } },
{ '$lookup':
{ from: 'tables',
localField: 'type',
foreignField: '_id',
as: 'type' } },
{ '$unwind': '$type' }
]
这是当用户连续键入多个字符时(甚至2个字符就足以使这种情况发生):
[ { '$match':
{ status: [Object],
'$text': [Object],
_supplier: 5c2e22779389ca0ade28ee30 } },
{ '$match':
{ status: [Object],
'$text': [Object],
_supplier: 5c2e22779389ca0ade28ee30 } },
{ '$lookup':
{ from: 'tables',
localField: 'type',
foreignField: '_id',
as: 'type' } },
]
如您所见,我对用户进行查询,并使用array.unshift();
但是,当用户连续键入多个字符时,$ match对象的array.unshift()
将被插入两次!
我试图检查Express的req对象是否被多次使用,但是我没有使用任何全局变量。 节点v9.2.0
用户正在发送两个相互冲突的并发HTTP请求。