我使用猫鼬已有一段时间了。我想知道我是对还是错,什么是最佳实践。
我正在做的是:
/ * myModel.js * /
const mongoose = require('mongoose'),
Schema = mongoose.Schema;
// 1.创建了我的模式
const mySchema = new Schema({
name: String,
age: Number
});
// 2.要使用提取操作 //但是我已经为此创建了方法
mySchema.methods.fetchById = async function(){
return await myModel.findById(this._id);
}
// 3.创建模型
module.exports = myModel = mongoose.model('myModel', mySchema);
/ * myController.js * /
const User = require('./myModel');
router.get('user/:id', async (req, res, next) => {
try {
let user = new User({
_id: req.params.id
})
res.status(200).json(await user.fetchById());
} catch (err) {
next(err);
}
})
答案 0 :(得分:0)
这不是创建实例方法以获取实例对象的好习惯,因为:
您应该只在控制器中使用静态方法findById
:
const User = require('./myModel');
router.get('user/:id', async (req, res, next) => {
try {
res.status(200).json(await User.findById(req.params.id));
} catch (err) {
next(err);
}
});