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