使用IAM MongoDB的存储快递会话作为快递会话文档,其做工精细用插入和更新,但未能删除收集我不会话知道为什么,但它的工作原理,当我重新启动我的服务器第一次
async function logout(req, res) {
if (!req.sessionID || !req.session.adminId){
res.send({status:400,detail:"Invalid Request"})
return;
}
if (sessionStore!=null){
sessionStore.remove({"_id":req.sessionID},true)'
res.send({status:200,detail:"Logged Out"})
}
else {res.send({status:400,detail:"Something went wrong"})
}
}
/*sessionStore here is my collection object e.g db.collection('sessions') as below*/
mongoClient.connect("mongodb://localhost:27017/AdminSessionDb", function(err, db) {
if (err) {
console.log('Error connecting to MongoDB-AdminSessionDB, err);
return;
}
else {
// console.log('Connected to MongoDB-capptinAdminSessions => auth.js');
adminSessionsCollection = db.collection("sessions");
}
});
尝试在ObectId()如下来包装ID:db.collection.remove({ “_id”:的ObjectId( “ID”)});
async function logout(req, res) {
if (!req.sessionID || !req.session.adminId){
res.send({status:400,detail:"Invalid Request"})
return;
}
if (sessionStore!=null){
sessionStore.remove({"_id": Mongoose.Types.ObjectId(req.sessionID)})
res.send({status:200,detail:"Logged Out"})
}
else {res.send({status:400,detail:"Something went wrong"})
}
}
/*sessionStore here is my collection object e.g db.collection('sessions') as below*/
mongoClient.connect("mongodb://localhost:27017/AdminSessionDb", function(err, db) {
if (err) {
console.log('Error connecting to MongoDB-AdminSessionDB, err);
return;
}
else {
// console.log('Connected to MongoDB-capptinAdminSessions => auth.js');
adminSessionsCollection = db.collection("sessions");
}
});
所以最后我得出一个解决方案,我不知道为什么,但它不是_id基础上删除,而我的ID是α-numaric像“2SXBWzAMq6laXsmYtLGqJHpdt3omDesG”这不是在node.js中删除,所以我尝试了一招我加入numaric UNIQUEID与该行/记录,并附加该UNIQUEID到会话属性,以及像
let sessionUniqueId = parseInt(Math.random() *10956362 + new Date().getTime())
var filter = { _id: req.sessionID};
var newvalues = { $set:{
"uniqueId":sessionUniqueId,
}};
sessionStore.updateOne(filter, newvalues, function(err) {
if (err) {console.log('Failed to attach Session UniqueId');}
});
req.session.uniqueId = sessionUniqueId; // also attach to session property
并以此UNIQUEID像删除记录
sessionStore.deleteOne({
uniqueId: parseInt(req.session.uniqueId),
})
现在它删除此行或记录。