【问题标题】:How to use Sails req.param function to retrieve and update a record如何使用 Sails req.param 函数来检索和更新记录
【发布时间】:2021-01-08 23:22:54
【问题描述】:

我试图在sails 1.0 中使用req.param. 函数是徒劳的。我无法缝合检索记录值并将它们预加载到编辑表单上,以便我可以更新记录。下面是我的代码 sn-p。

路线

'GET /organization/:id': { action: 'organization/view-organization-edit' }, 'PUT /api/v1/organization/edit-organization/': { action: 'organization/edit-organization' },

下面是我在 ajax 表单上触发操作的地方

 <td>
                            <div class="col-sm-12">
                                <span class="float-sm-left">
                                  <a style="width: 70px" class="btn btn-sm btn-outline-info" href="/organization/<%= organization.id %>">Edit </a>
                                </span>
                               
                                  <form class= "d-inline" action="" method="post">
                                    <input style="width: 70px" type="submit" value="Delete" class="btn btn-danger">
                                  </form>                             
                            </div> 
......

这给了我网址 http://localhost:1337/organization/1

查看编辑操作

module.exports = {


  friendlyName: 'View organization edit',


  description: 'Display "Organization edit" page.',


  exits: {

    success: {
      viewTemplatePath: 'pages/organization/edit-organization'
    }

  },


  fn: async function (req,res) {

   console.log(this.req.id);

  var organization = await Organization.findOne({ id:this.req.id });// **here is where the error occurs**

    // Respond with view.
    return {
      organizationData: organization, 
      //id:organization.id

    };

  }


};

编辑操作



    friendlyName: 'Update organization',
  
  
    description: 'Update organization.',
  
    inputs: {
      Org_Name: {
        type: 'string'
      },
        
      Org_Level:  {
        type: 'string'        
      }
  
    },  
  
    exits: {
      success: {
        description: "Successful",
      },
    },

  
  
  fn: async function ({Org_Name,Org_Level}) {

    console.log("We are in update function");

    //var org_name= req.body.Org_Name;
    //var org_level=req.body.Org_Level;
    //var id= req.param.id;
    
    console.log(this.req.me.Org_Name);
    console.log(this.req.me.Org_Level);
    console.log(this.req.me.id );
    //console.log(id);

    var valuesToSet = {Org_Name,Org_Level};

    await Organization.updateOne({id: this.req.me.id })
    .set(valuesToSet);

   /* Organization.update({id},{org_name,org_level}).exec(function(err){
        if(err){
          res.send(500, {err: "some error occured"});
        }
        
    
      });*/
    
      return true;  
    }
  
  
  };

编辑页面

 <div id="account-overview" v-cloak>
    <div class="content-wrapper">
        <div class="card">
            <div class="card-body">
                <ol class="breadcrumb">
                    <li class="breadcrumb-item"><a href="/organization" >Organizations</a></li>
                    <li class="breadcrumb-item active">Edit</li>
                </ol>                
            </div>
            <h5>Updating: <%= organizationData.Org_Name%></h5>
            <ajax-form method= "put" action="editOrganization" :form-data="formData" >
                <div class="row">
                  <div class="col-sm-6">                   
                    <div class="form-group">
                      <label for="Org_Name">Church Organization</label>
                      <input class="form-control" id="Org_Name" name="Org_Name" type="text"  :class="[formErrors.Org_Name ? 'is-invalid' : '']" Value=" <%= organizationData.Org_Name%>" autocomplete="name" >
                      <div class="invalid-feedback" v-if="formErrors.Org_Name">Please enter your church Organization.</div>
                    </div>
                    <div class="form-group">
                        <label for="Org_Level">Organization level</label>
                        <input class="form-control" id="Org_Level" name="Org_Level" type="text"  :class="[formErrors.Org_Level ? 'is-invalid' : '']"  Value=" <%= organizationData.Org_Level%>" autocomplete="name">
                        <div class="invalid-feedback" v-if="formErrors.Org_Level"> Please enter your Organization Level</div>
                      </div>

                    <div class="row">
                        <div class="col-sm-6">
                          <cloud-error v-if="cloudError === 'emailAlreadyInUse'">There is already an Organization using that Name.</cloud-error>
                          <cloud-error v-if="cloudError"></cloud-error>
                        </div>
                        <div class="col-sm-6">
                          <div class="form-group text-right">
                            <a class="btn btn-outline-info" href="/Organization">Cancel</a>
                            <ajax-button type="submit"  class="btn btn-dark">Submit</ajax-button>
                          </div>
                        </div>
                      </div>
                  </div>
                </div> 
              </ajax-form>
            
        </div>```




【问题讨论】:

标签: parameters sails.js


【解决方案1】:
In async function you can define req and use it or you can just say this.req.param('id');

  fn: async function ({Org_Name,Org_Level}) {
    let req = this.req;
    let res = this.res;

    console.log("We are in update function");

    //var org_name= req.body.Org_Name;
    //var org_level=req.body.Org_Level;
    //var id= req.param.id;
    
    console.log(this.req.me.Org_Name);
    console.log(this.req.me.Org_Level);
    console.log(this.req.me.id );
    //console.log(id);

    var valuesToSet = {Org_Name,Org_Level};

    await Organization.updateOne({id: this.req.me.id })
    .set(valuesToSet);

   /* Organization.update({id},{org_name,org_level}).exec(function(err){
        if(err){
          res.send(500, {err: "some error occured"});
        }
        
    
      });*/
    
      return true;  
    }
  
  
  };

【讨论】:

    【解决方案2】:

    记录您的 req 变量并检查是否有名称为“body”和“params”的对象。 如果是,您需要使用 req.body 或 req.allParams() 获取它

    【讨论】:

      猜你喜欢
      • 2018-11-29
      • 2019-05-05
      • 1970-01-01
      • 2022-12-12
      • 2021-02-12
      • 1970-01-01
      • 2021-04-14
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多