Javascript Mongodb/Node.js中的自动计数日期/时间
我在我的nodejs/expressjs应用程序中使用mongoose与mongodb交互,下面是mongodb集合或模式之一,我在其中对文档或字段进行了提升,并将其设置为日期类型,每当用户在客户端提出请求时,它都会更新为当前日期,同样,我已将approvedon和rejectedon文档设置为Type Date,当有人批准或拒绝请求时,该日期也将更新为当前日期,我希望这三个字段自动计数或与这三个字段同步,这三个字段将在用户提出请求后开始计数天数和时间,批准或拒绝每个单独的时间,这是我想要的,因为在一段时间后,如果没有用户批准或拒绝,我必须自动发送电子邮件,或者在其他条件下,我尝试将提升的日期值转换为毫秒,并尝试添加以毫秒为单位的特定时间,比较这两个时间,并根据条件发送邮件,但是值返回为NaN,所以我无法理解如何实现逻辑,有人能帮我找到解决方案吗Javascript Mongodb/Node.js中的自动计数日期/时间,javascript,node.js,mongodb,express,mongoose,Javascript,Node.js,Mongodb,Express,Mongoose,我在我的nodejs/expressjs应用程序中使用mongoose与mongodb交互,下面是mongodb集合或模式之一,我在其中对文档或字段进行了提升,并将其设置为日期类型,每当用户在客户端提出请求时,它都会更新为当前日期,同样,我已将approvedon和rejectedon文档设置为Type Date,当有人批准或拒绝请求时,该日期也将更新为当前日期,我希望这三个字段自动计数或与这三个字段同步,这三个字段将在用户提出请求后开始计数天数和时间,批准或拒绝每个单独的时间,这是我想要的,因
var mongoose = require('mongoose'),
Schema = mongoose.Schema;
var Requests = new Schema({
id: Schema.Types.ObjectId,
request: String,
description: String,
approval: Boolean,
rejection: Boolean,
expired: Boolean,
raisedon: {type: Date, default: Date.now},
approvedon: {type: Date, default: Date.now},
rejectedon: {type: Date, default: Date.now}
});
module.exports=mongoose.model'Requests',Requests Date.now是一个函数,因此当您将其强制为数字时,它将变为NaN。只需将这些调用更改为Date。现在。我们可以在从请求引发时间开始的一段时间后实现邮件发送逻辑,如下所示
var Requests = require('./process');
var escmail = require('./escalationmail');
var escalation = function () {
Requests.find('', function (err, data) {
for (var i = 0; i < data.length; i++) {
var raisd = data[i]['raisedon'];
var time1 = raisd.setTime(raisd.getTime() + 7*24*60*60000);
var time2 = new Date();
var time3 = time2.setTime(time2.getTime());
if (data[i]['expired'] == "0") {
if (time3 > time2) {
escmail.sendMails();
Requests.findByIdAndUpdate(data[i]['_id'], {
expired: "1"
},
function (err) {
console.log("escalated emails have been sent");
})
}
}
}
})
}
exports.escalation=升级 我改为Date.now,但仍然在console.log中,raisedon被记录为Tue Feb 11 2014 11:36:21,在更改之前也是sameDate。现在返回自历元以来的毫秒数。现在还不确定你在问什么……Mongoose docs示例使用Date。现在,我只希望在请求初始化日期起7天后,如果任何用户没有对该请求采取任何操作(如我正在开发的node.js应用程序中的批准或拒绝),邮件会自动发送给用户