Вы можете сделать так, чтобы это работало, используя this.create:
const mongoose = require("mongoose");
const logSchema = new mongoose.Schema({
message: String
});
logSchema.statics.log = function(message) {
this.create({ message: message })
.then(doc => console.log(doc))
.catch(err => console.log(err));
};
module.exports = mongoose.model("Log", logSchema);
Теперь вы можете использовать это в своих маршрутах следующим образом:
Log.log("test");
или просто вернуть обещание из статики :
logSchema.statics.log = function(message) {
return this.create({ message: message });
};
И используйте вот так:
const Log = require("../models/log");
router.get("/log", (req, res) => {
Log.log("test")
.then(result => {
console.log(result);
res.send("ok");
})
.catch(err => {
console.log(err);
res.status(500).send("not ok");
});
});