2
我试图在猫鼬一个promoCode
架构。在创建时,我需要能够设置促销代码的到期日期。促销代码不一定具有相同的TTL
。我看着this question,但我的文件仍然没有过期。如何设置在猫鼬上创建文档的TTL日期?
这是我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
的价值。我将如何去解决这个问题?
[设置使用mongoose在MongoDB中设置集合的到期时间](http://stackoverflow.com/questions/14597241/setting-expiry-time-for-a-collection-in-mongodb-using-mongoose ) –
@royhowie有趣的问题......你有没有发现在学习猫鼬很有用,在一般平均叠加。从你的个人资料中,我可以看到你和我分享了很多东西。 –
@MuhammadUmer真正学会如何正确使用回调,以及如何使用助手库像(即,如何与错误传播的/ etc写你自己的)[异步](https://github.com/caolan/async)(或者你可以用[q](https://github.com/kriskowal/q)去承诺路线)。总是用[express](http://expressjs.com)滚动。 [lodash](https://lodash.com)或[下划线](http://underscorejs.org)也是总是有用的(但不是必需的) – royhowie