我有什么
我已经定义了一个mongoose模式如下
var favoriteSchema = new Schema({
user: {
type: mongoose.Schema.Types.ObjectId,
ref: 'User'
},
cars: [{
type: mongoose.Schema.Types.ObjectId,
ref: 'Car'
}]
}, {
timestamps: true
});
我还为此模型/架构定义了get / post路由:
favoriteRouter.route('/')
.get((req,res,next) => {
Favorites.find({user: req.user.id})
console.log(req.user.id);
//.populate('user')
//.populate('cars')
.then((favorites) => {
res.statusCode = 200;
res.setHeader('Content-Type', 'application/json');
res.json(favorites);
}, (err) => next(err))
.catch((err) => next(err));
})
.post((req, res, next) => {
Favorites.create(req.body)
.then((favorite) => {
res.statusCode = 200;
res.setHeader('Content-Type', 'application/json');
res.json(favorite);
}, (err) => next(err))
.catch((err) => next(err));
})
我需要什么
'get'操作对我不起作用。我想检索用户的所有收藏夹。 post请求工作正常,所以我可以看到使用mongo控制台正确存储文档,但是当我执行get请求时,我得到一个空数组。
我尝试了什么
·我尝试使用console.log(req.user.id)来确认这是正确的
·我也尝试过不按用户过滤 - > Favorites.find({}),这很好用
·我尝试过Favorites.find({'name':...})和Favorites.find({name:...}),但它们都不适用于我。
任何帮助将不胜感激。感谢
答案 0 :(得分:1)
此代码错误
Favorites.find({user: req.user.id})
console.log(req.user.id);
//.populate('user')
//.populate('cars')
.then((favorites) => {
你必须将.then应用于承诺,现在你将它应用于任何东西。试试这个:
console.log(req.user.id);
Favorites.find({user: mongoose.Schema.Types.ObjectId(req.user.id)})
.then((favorites) => {