Javascript 如何在cookie过期时删除数据库文档

Javascript 如何在cookie过期时删除数据库文档,javascript,node.js,express,mongoose,Javascript,Node.js,Express,Mongoose,我试图实现的是,当cookie过期时,它会使用mongoose删除收集订单中的文档,我已经为cookie设置了过期时间 并尝试在app.use中使用if语句,但不起作用,例如if(req.session.cookie._expires==new Date()){并尝试将新日期设置为变量,但仍不成功 app.use(session({ secret: "Our little secret.", resave: false, saveUnitialized: true,

我试图实现的是,当cookie过期时,它会使用mongoose删除收集订单中的文档,我已经为cookie设置了过期时间

并尝试在app.use中使用if语句,但不起作用,例如if(req.session.cookie._expires==new Date()){并尝试将新日期设置为变量,但仍不成功

app.use(session({
    secret: "Our little secret.",
    resave: false,
    saveUnitialized: true,
    cookie: { maxAge : 36000 }
}));




app.use(function(req, res, next) {

      const session = req.session.cookie;

      const day = new Date();

      if (session && new Date(session._expires) === new Date()) {
           Order.deleteMany({}, function(req, res) {
             console.log("Order deleted");
           });
      }
    next();
 });

提前感谢。

对象正在按链接进行比较。您使用不同的链接创建了两个不同的对象。此处的“始终为false”:

新日期(会话到期)==新日期()

时间戳的比较应该有效:

+新日期(会话到期)尝试比较日期

试试这个:

if (session && moment(session._expires)startOf('day') === moment().startOf('day')) {
       Order.deleteMany({}, function(req, res) {
         console.log("Order deleted");
       });
  }
app.use(函数(请求、恢复、下一步){
var session=req.session.cookie | |“”;
如果(新日期(会话到期)<新日期()){
Order.deleteMany({},函数(req,res){
控制台日志(“订单已删除”);
});
log('用户会话已过期');
req.session.cookie.expires=新日期(Date.now()+36000)
}
控制台日志(请求会话);
next();
}); 

什么包括
会话
会话.\u过期
?结果是什么:
控制台.log(会话&&+新日期(会话.\u过期)当我控制台记录它时,返回FALSE谢谢您的帮助,但我发现了,您可以检查答案。首先为cookie声明一个变量,检查是否没有cookie,然后与日期进行比较,如果它已经过期,则重置,当然,如果您需要重置。
app.use(function(req, res, next) {

var session = req.session.cookie || '';
  if (new Date(session._expires) < new Date()) {
         Order.deleteMany({}, function(req, res) {
      console.log("Order deleted");
 });
        console.log('User session has expired.');
        req.session.cookie.expires = new Date(Date.now() + 36000)
 }

 console.log(req.session);

 next();
});