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 }
注意:文件路径写自己配置文件的路径