Adding an expiration period in the form of a count and you can also update the duration in your model and here it will automatically synchronize the new period And when this period expires, the event will be issued, this package currently supports these database systems. MongoDB How this package works: You will create a connection to the model with data that you want to create for an expiration period, and note that the package only supports milliseconds Then it will create a dummy container within the process that has a duration for each object, and it will subtract the period that you put within the option every time the session of the intervel period that you put into the option ends.
I do not know my explanation is understandable or not, but this package you run only once on the model you want to create an expiration period and you do not need to create a new one every time use Example Test to see How does this package work
- Easy to use
property "_id" must be included in the data because we use it as the container key
npm install iexpire
yarn add iexpire
const { MongoDbExpirer } = require("iexpire");
const iexpire = new MongoDbExpirer(<Modal>, {
<Options>
});
{
subtract: "",// He will subtract this period and then update it each time
interval: "",//Here the Interval, when the period ends, it will subtract the number
property: "",// property for expiration that will be updated
delete: false,// If true, it will delete the document when the period ends
sync: "2s",//Here it checks if there is new data with a new id, and if it finds new data, it will create a new container for it with a different expiration period
}
const mongoose = require("mongoose");
const ms = require("ms");
mongoose.connect("<UrI>").then(async () => {
const { MongoDbExpirer } = require("iexpire");
const mongoose = require("mongoose");
//Modal is the model that you want to create an expiration period
const Schema = new mongoose.Schema({
expiresAt: Number, //milliseconds
});
const Modal = mongoose.model("subscriptions", Schema); //Your model
const iexpire = new MongoDbExpirer(Modal, {
subtract: "1d",
interval: "1s", //This is just an example. If the expiration period is in days, it is preferable to put it "1d" instead of "1s"
property: "expiresAt",
delete: true, // If true, it will delete the document when the period ends
sync: "2s",
});
//This event if you get an error
iexpire.on("error", (data) => {
console.log(data);
});
//The data from which it was subtracted
iexpire.on("subtract", (data) => {
console.log(data);
});
//Here is the data that was deleted
iexpire.on("delete", (data) => {
console.log(data);
});
//And here it is when it expires
iexpire.on("end", (data) => {
console.log(data);
});
console.log("Connect To MongoDB Successfully");
//There is no need to use this if you are taking the process seriously {This is just an example}
Modal.create({
expiresAt: ms("30d"),
});
//
});
const mongoose = require("mongoose");
const ms = require("ms");
mongoose.connect("<UrI>").then(async () => {
const { MongoDbExpirer } = require("iexpire");
const mongoose = require("mongoose");
//Modal is the model that you want to create an expiration period
const Schema = new mongoose.Schema({
expiresAt: Number,//milliseconds
});
const Modal = mongoose.model("subscriptions", Schema); //Your model
const iexpire = new MongoDbExpirer(Modal, {
subtract: "1d",
interval: "1d",
property: "expiresAt",
delete: true, // If true, it will delete the document when the period ends
sync: "2s",
});
//This event if you get an error
iexpire.on("error", (data) => {
console.log(data);
});
//The data from which it was subtracted
iexpire.on("subtract", (data) => {
console.log(data);
});
//Here is the data that was deleted
iexpire.on("delete", (data) => {
console.log(data);
});
//And here it is when it expires
iexpire.on("end", (data) => {
console.log(data);
});
console.log("Connect To MongoDB Successfully");
});