【发布时间】:2019-11-07 02:24:13
【问题描述】:
我正在尝试在帐户创建 1 小时后使来宾用户过期。我查找了 MongoDB 数据库以及其他类似的问题并尝试了建议的解决方案,但它们也没有奏效。
在数据库中创建来宾用户时(它显示在 MongoDB Atlas 中的 guests 集合下,因此创建方式没有问题),它不会在 30 秒后过期。
依赖v:
- “猫鼬”:“^5.7.8”,
- “节点”:“10.16.3”
这是我将用户保存到数据库的user.js,没有问题:
router.post("/guest", function (req, res, next) {
let guest = new Guest({
email: req.body.email
});
guest.save(function (err) {
});
res.redirect('back');
});
这是我尝试过的:
let mongoose = require('mongoose');
let Schema = mongoose.Schema;
let guestSchema = new Schema({
email: { type: String, required: true }
});
guestSchema.index({createdAt: 1},{expireAfterSeconds: 30});
module.exports = mongoose.model('guest', guestSchema);
所以我也试过这个:
let mongoose = require('mongoose');
let Schema = mongoose.Schema;
let guestSchema = new Schema({
email: { type: String, required: true }
});
guestSchema.createIndex({createdAt: 1},{expireAfterSeconds: 30});
module.exports = mongoose.model('guest', guestSchema);
这会导致错误createIndex is not a function。
我也试过这个:
let mongoose = require('mongoose');
let Schema = mongoose.Schema;
let guestSchema = new Schema({
email: { type: String, required: true }
expire: { type: Date, index: { expireAfterSeconds: 30 } }
});
module.exports = mongoose.model('guest', guestSchema);
不幸的是,两者都不起作用。
【问题讨论】:
标签: node.js mongodb express mongoose