【发布时间】:2014-08-08 03:11:45
【问题描述】:
我正在尝试在 Mongoose 中创建 promoCode 架构。在创建时,我需要能够设置促销代码的到期日期。促销代码不一定具有相同的TTL。我查看了this question,但我的文档还没有过期。
这是我的promoCode.js 文件:
var mongoose = require("mongoose");
var promoCodeSchema = mongoose.Schema({
expirationDate: Date,
createdAt: {
type: Date,
expireAfterSeconds: Number,
default: Date.now
}
})
module.exports = mongoose.model("Promo", promoCodeSchema);
现在,在routes.js,我有:
app.post("/admin/promo/create", isLoggedIn, isVerified, isAdmin, function (req, res) {
var promo = new Promo();
promo.createdAt.expireAfterSeconds = 60;
// for reference, note the actual day on which the promo code should expire
var days = parseInt(req.body.expiration.replace(/[^\d]+/g, "")) || 1;
promo.expirationDate = new Date(Date.now() + (days * 24 * 3600 * 1000));
promo.save(function (err) {
console.log(err, promo);
return res.redirect("/admin/promo");
});
})
这不起作用。我还需要能够获得TTL 的值。我将如何解决这个问题?
【问题讨论】:
-
@royhowie 好问题...你有没有发现任何对学习猫鼬和一般平均堆栈有用的东西。从您的个人资料中,我可以看到您和我有很多共同点。
-
@MuhammadUmer 真正学会了如何正确使用回调(即如何编写自己的错误传播/等)以及如何使用像 async 这样的帮助库(或者你可以使用 promises 路线q)。始终使用express。 lodash 或 underscore 也总是有用的(但不是必需的)
标签: javascript node.js mongodb mongoose