zoukankan      html  css  js  c++  java
  • 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;
          }
          
      
    });
    

      截图

  • 相关阅读:
    23种设计模式-----行为模式
    23种设计模式-----创建型模式、结构型模式
    字节码操作、javassist使用
    反射机制(reflection)
    NFC手机
    NFC简介
    不同技术的过滤条件的定义
    [linux] ubuntu系统tips
    图算法(一)
    跳跃表skiplist
  • 原文地址:https://www.cnblogs.com/guangzhou11/p/10340188.html
Copyright © 2011-2022 走看看