В схеме Мангуста мы можем создать метод двумя способами: SchemaName.methods.fuctionName и SchemaName.statics.functionName .
Статику проще использовать, мне просто нужно позвонить ModelName.Fuction . Методы должны создать объект для использования. Мой вопрос, что отличается между ними. В чем преимущество и недостаток статик и методов . Когда я должен использовать статика и когда я должен использовать методы .
// Users.js
UserSchema.statics.findUserStatics = async function(mail) {
var findUser = await User.findOne({ mail: mail })
return findUser
}
UserSchema.methods.findUserMethods = async function(mail) {
var findUser = await User.findOne({ mail: mail })
return findUser
}
// router.js
const { User } = require('./../models/Users')
router.post('/findbyStatics', async (req, res) => {
try {
var result = await User.findUserbyStatics(req.body.mail);
res.status(200).send(result)
} catch (e) {
res.status(400).send(e.message)
}
})
router.post('/findbyMethods', async (req, res) => {
try {
var user = new User()
var result = await user.findUserbyMethods(req.body.mail);
res.status(200).send(result)
} catch (e) {
res.status(400).send(e.message)
}
})