toggleSave路由似乎在邮递员中不起作用。我在发送请求时无法获取路由

时间:2020-08-09 06:34:37

标签: node.js express mongoose mongoose-schema

  • 我这样做是为了将其他用户的帖子保存在当前用户的个人资料中,类似于Instagram功能,但在邮递员中不起作用。

我要提及的另一个问题是,如果我想在个人资料中显示关注者,followers,savedPost和saveJobs,那么这些问题(关注者,following,savedPost和savedJobs)应该在UseSchema中声明(我已经在其中声明它们)或ProfileSchema(我拥有的另一种模式)*

切换保存路线

const express=require('express');
const router=express.Router();
const Job=require('../../models/Job');
const {check,validationResult}=require('express-validator');
const auth=require('../../middleware/auth');

const User=require('../../models/User');

router.get(':/id/toggleSave',auth,async (req,res)=>{
        const job = await Job.findById(req.params.id);
    
      if (!job) {
        return res.status(404).json('Post not found')
      }
    
      const { user } = req;
    
      if (user.savedJobs.includes(req.params.id)) {
        console.log("removing saved post");
        await User.findByIdAndUpdate(user.id, {
          $pull: { savedJobs: req.params.id },
        });
      } else {
        console.log("saving post");
        await User.findByIdAndUpdate(user.id, {
          $push: { savedJobs: req.params.id },
        });
      }
    
     res.json(job);
    });

工作模式

const mongoose=require('mongoose');
const Schema=mongoose.Schema;

const JobSchema=new Schema({
    user:{
        type:Schema.Types.ObjectId,
        ref:'User'
    },
    description:{
        type:String,
        required:true
    },
    title:{
        type:String,
        required:[true,'Please enter title'],
        
    },
    tags:{
        type:[String],
        required:true
    },
    qualification:{
        type:[String],
        required:true
    },
    location:{
        type:String,
        required:true
    },
    salary:{
       type:Number,
       required:true
    },
    jobpic:{
        type:String
    },
    link:{
     type:String
    },
  
    reviews:[
        {
            user:{
                type:Schema.Types.ObjectId,
                ref:'User'
            },
          
            text:{
                type:String,
                required:true,
                
            },
            name:{
                type:String
            },
            avatar:{
                type:String
            },
            date:{
                type:Date,
                default:Date.now
            }
        }
    ],
    date:{
        type:Date,
        default:Date.now
    },
    expiryDate:{
        type:Date
    }
    
    
})
module.exports=Job=mongoose.model('Job',JobSchema)

用户模型

const mongoose=require("mongoose");
const UserSchema=new mongoose.Schema({
    name:{
        type:String,
        required:true
    }
   
,
email:{
    type:String,
    required:true,
    unique:true

},
password:{
    type:String,
    required:true,
    select:true
},
avatar:{
    type:String

},
followers:[{
    type:
        mongoose.Schema.ObjectId,
        ref:'User'
}],

followersCount:{
type:Number,
default:0,
},

followingCount:{
    type:Number,
    default:0
},

following:[
{
    type:mongoose.Schema.ObjectId,
    ref:'User'
}
],

posts:[{
type:mongoose.Schema.ObjectId,
ref:'Post'
}],

postCount:{
type:Number,
default:0,
},
savedPosts:[{
  type:mongoose.Schema.ObjectId,
  ref:'Post'
}],
savedJobs:[{
    type:mongoose.Schema.ObjectId,
    ref:'Job'
  }],

date:{
    type:Date,
    default:Date.now
},
confirmationToken:{
    type:String
}


});

module.exports=User=mongoose.model("User",UserSchema);

0 个答案:

没有答案