node 添加个人经历的接口

1.定义experience 

 const  profileFields = {};
      profileFields.experience=[];

  

2.查找用户id

 const profile = await Profile.find({ user: ctx.state.user.id });

3.判断用户的数据是否存在,

如果存在,就设计数据的结构,然后添进Profile 中,最后更新进去数据库里面

if(profile.length>0) {
        //设计experience 的结构数据
         const  newExp={
          title: ctx.request.body.title,
          current: ctx.request.body.current,
          company: ctx.request.body.company,
          location: ctx.request.body.location,
          from: ctx.request.body.from,
          to: ctx.request.body.to,
          description: ctx.request.body.description
         }
         profileFields.experience.unshift(newExp);
         //console.log(profileFields);
         //在从前端添加数据后,我们更新数据到数据库
         const  profileUpdate =  await   Profile.findOneAndUpdate(
          {
           user:ctx.state.user.id
          },
          {
            $set:profileFields
          },
          {
             new:true
          }
      );
          ctx.body=profileUpdate;

更新数据库

  const  profileUpdate =  await   Profile.findOneAndUpdate(
          {
           user:ctx.state.user.id
          },
          {
            $set:profileFields
          },
          {
             new:true
          }

  数据不存在

 errors.noprofile = '没有该用户的信息';
        ctx.status = 404;
        ctx.body = errors

代码

/**
 * @route post api/profile/experience
 * @desc  工作经历接口
 * @access 接口是私密的
 */
// localhost:4000/api/profile/experience
router.post('/experience', passport.authenticate('jwt', { session: false }), async ctx => {
    //验证
    const { errors, isValid } = validateExperienceInput(ctx.request.body);
    //判断是否验证通过
    if (!isValid) {
      ctx.status = 400;
      ctx.body = errors;
      return;
    }
      const  profileFields = {};
      profileFields.experience=[];
      //查找用户id是否存在
      const profile = await Profile.find({ user: ctx.state.user.id });
      //判断profile  的数据是否存在,存在就添加个人经历的数据
      if(profile.length>0) {
        //设计experience 的结构数据
         const  newExp={
          title: ctx.request.body.title,
          current: ctx.request.body.current,
          company: ctx.request.body.company,
          location: ctx.request.body.location,
          from: ctx.request.body.from,
          to: ctx.request.body.to,
          description: ctx.request.body.description
         }
         profileFields.experience.unshift(newExp);
         //console.log(profileFields);
         //在从前端添加数据后,我们更新数据到数据库
         const  profileUpdate =  await   Profile.findOneAndUpdate(
          {
           user:ctx.state.user.id
          },
          {
            $set:profileFields
          },
          {
             new:true
          }
      );
          ctx.body=profileUpdate;
    
      }else {
        errors.noprofile = '没有该用户的信息';
        ctx.status = 404;
        ctx.body = errors;
      }
      
  
});

  截图

posted @ 2019-01-30 23:14  1点  阅读(153)  评论(0编辑  收藏  举报