Używam mangusta, aby wypełnić "schemat pocztowy" z informacjami o użytkownikach WHIC Utwórz post.

postmodule.js.js

const mongoose = require('mongoose');

 const postSchema = mongoose.Schema({
title:String,
description:String,
datePost:Date,
images:[String],
like:[String],
dislike:[String],
author:{
    type: mongoose.Schema.Types.ObjectId,
    ref:'User'
},
 });


postSchema.pre(/^find/,function(next){
this.populate({
    path:'author',
    select:'photo firstName lastName'
  });
next();
});


 const Post = mongoose.model('Post',postSchema);
 module.exports = Post;

Jest to kompilacja kontrolera w PostController.js

//Get All User Post
exports.getUsersPost = catchAsync(async(req,res,nex)=>{
const userPost = await Post.find({author:req.params.userId});

res.status(200).json({
    status:"success",
    length:userPost.length,
    data:{
        post:userPost
    }
});
});

posttrored.js

router.route('/get-user-posts/:userId').get(authController.protect,postController.getUsersPost)

Nie wiem, co jest nie tak, recywuję w Listonimowi Ten błąd

 nie można dostać / API / V1 / GET-User-Posts / 5F719092BA22B8373C72196 
Istnieje jakakolwiek opcja rozwiązania tego problemu i wynik żądania musi mieć wszystkie posty utworzone przez użytkownika.

0
Pruteanu Alexandru 7 październik 2020, 18:19

1 odpowiedź

Najlepsza odpowiedź

Jeśli wygląda poniżej app.js, a następnie punkt końcowy powinien być:

/api/v1/post/get-user-posts/5f719092ba22b8373c72196.

Potrzeba całego ciągu w funkcji {X0}}. Więc /api/v1/user/**Routes you've defined in your Routes files**

const sessionRoutes = require('./routes/sessionsRoutes'); 
    const userRoutes = require('./routes/userRoutes'); 
    const viewRoutes = require('./routes/viewRoutes'); 
    const postRoutes = require('./routes/postRoutes'); 
    
    app.use('/api/v1/session',sessionRoutes); 
    app.use('/api/v1/user',userRoutes); 
    app.use('/api/v1/post',postRoutes); 
    app.use('/',viewRoutes); 
    module.exports = app;

Także dodaj i dodatkowo ukośnik, aby być pewnym app.use('/api/v1/user/', userRoutes)

1
wiredmartian 8 październik 2020, 13:54