在猫鼬模式中,我们可以将方法创建为两种方式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 …Run Code Online (Sandbox Code Playgroud)