SITUATION:私は1時間のスパム期限を作成している巨大な時間経過)
。
ユーザが投稿すると、Date.now()
はuser.last
に保存されます。
再び投稿すると、Date.now()
で現在の時刻を取得し、それをuser.last
と比較します。
問題:
問題は以下の通りです:
私は約1分で二回投稿してください。
2つのポストの時間の差は、私のコードのコンソール出力によれば1時間を超えています。
QUESTION:
私が間違って何をしましたか?私はenv TZをUTCに設定しました。
CODE:
exports.create = function (req, res) {
var article = new Article(req.body);
article.user = req.user;
console.log("LAST: "+article.user.last.getTime());
console.log("Date.now(): "+Date.now());
if (article.user.last.getTime() != null && article.user.last.getTime() != undefined) {
console.log("DATE DIFFERENCE: "+(Date.now() - article.user.last));
if ((Date.now() - article.user.last > 1000 * 60 * 60)) {
article.save(function (err) {
if (err) {
return res.status(422).send({
message: errorHandler.getErrorMessage(err)
});
} else {
res.json(article);
if (article.user) {
article.user.last = Date.now();
console.log("NEW LAST: "+article.user.last.getTime());
} else {
res.status(401).send({
message: 'User is not signed in'
});
}
}
});
}
else {
return res.status(422).send({
message: "You need to wait 1 hour between Article creations or if you just created an account."
});
}
}
else {
console.log("2");
article.save(function (err) {
if (err) {
return res.status(422).send({
message: errorHandler.getErrorMessage(err)
});
} else {
res.json(article);
if (article.user) {
article.user.last = Date.now();
console.log("3) LAST: "+article.user.last.getTime());
} else {
res.status(401).send({
message: 'User is not signed in'
});
}
}
});
}
};
CONSOLE:
LAST: 1486438249652
Date.now(): 1486515834377
DATE DIFFERENCE: 77584725
NEW LAST: 1486515834394
EDIT:
Userモデル
/**
* User Schema
*/
var UserSchema = new Schema({
//SOME CODE
last: {
type: Date
},
//SOME CODE
});
あなた 'はconsole.log(article.user.last)'あなたは何を得るのですか? – jonmrich
@jonmrich例: 'Tue Feb 07 2017 03:30:49 GMT + 0000(UTC)' – Coder1000
これは、 'console.log(" DATE DIFFERENCE: "+(Date.now() - article.userです。最後に)); 'あなたに番号を教えてください。 – jonmrich