gpt4 book ai didi

mongoose-schema - Mongoose Schema 静态与方法

转载 作者:行者123 更新时间:2023-12-04 07:21:09 26 4
gpt4 key购买 nike

在 Mongoose 模式中,我们可以通过两种方式创建方法 SchemaName.methods.functionName SchemaName.statics.functionName .
静态更容易使用我只需要调用型号名称.功能 .方法需要创建对象才能使用。我的问题是它们之间有什么不同。 的优缺点是什么静力学 方法 .什么时候应该使用 静力学 什么时候应该使用 方法 .

// 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)
}
})

最佳答案

静力学 object 包含与模型本身相关联的函数,而不是与单个实例相关联的函数。使用 的优势静力学 是我们不需要访问类的实例来访问与它相关的功能。例如:在上面的代码片段中,您尝试搜索用户。你正确地实现了 静态 成员。如果您使用了 方法 ,您将需要实例化一个用户对象来搜索用户。
使用方法当您将拥有已经实例化的对象并使用 静力学 当你不会。

关于mongoose-schema - Mongoose Schema 静态与方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51038621/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com