golang将从前端获取到的参数写入到配置文件


前端页面的参数传递(小伙伴可以自己改写参数传递的数据格式)我这里用的是最简单也最容易理解的一种传值方式: 

 1 function setLoginFalse(){
 2         var times = $("#Times").val();
 3         var locktime = $("#LockTime").val();
 4         var url = '{{ urlfor "SystemParamController.SetLoginFalse"}}';
 5         layer.confirm("设置登录最大重试次数:"+times+",锁定时间:"+locktime+"?", {
 6             btn: ['是', '否'], icon: 3, title: '请确认'
 7         }, function () {
 8             //系统默认参数
 9             $.sdpost(url, {"loginfalse":times+","+locktime}, function (re) {
10                 if (re.code == 0) {
11                     layer.msg(re.msg, {icon: 1, title: '成功'});
12                     refresh();
13                 } else {
14                     layer.alert(re.msg, {icon: 2, title: "失败"});
15                 }
16             });
17         });
18     }

配置路由

1 beego.Router("/systemparam/setloginfalse", &controllers.SystemParamController{}, "Post:SetLoginFalse")

控制器代码(小伙伴也可以自己改写接收参数的方式,要注意参数的数据格式)

 1 func (this *SystemParamController) SetLoginFalse() {
 2     loginFalseParams := this.GetString("loginfalse")
 3     //将获取到的多个文件名放入切片paramSlice中
 4     paramSlice := make([]string, 0, len(loginFalseParams))
 5     for _, param := range strings.Split(loginFalseParams, ",") {
 6         paramSlice = append(paramSlice, param)
 7     }
 8     //将获取到的数据存到map里面
 9     data := map[string]string{"maxTimes": paramSlice[0], "lockTime": paramSlice[1]}
10     fmt.Println("data:+++++", data)
11     path, err := os.Getwd()
12     if err != nil {
13         this.jsonResult(enums.JRCodeFailed, "设置失败", 0)
14     }
15     fmt.Println("path+++", path)
16     conf := beego.AppConfig
17     // 字符串写入配置文件
18     for paramTitle := range data {
19         conf.Set(paramTitle, data[paramTitle])
20     }
21     conf.SaveConfigFile(path + "/conf/app.conf")
22     this.jsonResult(enums.JRCodeSucc, "已设置", 0)
23 }

  注意:文件路径写自己配置文件的路径