这是我初始化iris的代码
```go
func main() {
//1.创建iris实例
app := iris.New()
//2.设置日志错误等级
app.Logger().SetLevel("debug")
//3.注册模板(渲染视图用)(参数:目录,模板文件后缀)
//意思就是以这个目录下的html文件按为模板
tmplate := iris.HTML("./backend/web/views",
".html").Layout("shared/layout.html").Reload(
true)
//4.把模板放到框架中
app.RegisterView(tmplate)
//5. 设置模板目录
app.HandleDir("assets", iris.Dir("./backend/web/assets"))
//出现异常跳转到指定页面
app.OnAnyErrorCode(func(ctx iris.Context) {
ctx.ViewData("message",
ctx.Values().GetStringDefault("message", "访问的页面出错"))
ctx.ViewLayout("")
ctx.View("shared/error.html")
})
//连接数据库
db, err := common.NewMysqlConn()
if err != nil {
log.Error(err)
}
ctx, cancel := context.WithCancel(context.Background())
defer cancel()
//6.注册控制器
productRepository := repositories.NewProductManager("product", db)
productService := services.NewProductService(productRepository)
productParty := app.Party("/product")
product := mvc.New(productParty)
product.Register(ctx, productService)
product.Handle(new(controllers.ProductController))
//7.启动服务
app.Run(
iris.Addr("localhost:8080"),
iris.WithoutServerError(iris.ErrServerClosed), //忽略iris框架的错误
iris.WithOptimizations,
)
}
后端定义了一个插入数据库操作的函数,当我在postman中发送请求的时候,就出现了我不太理解的情况
```go
func (p *ProductController) PostInsert() {
log.Printf("成功进入postinsert")
product := &datamodels.Product{}
p.Ctx.Request().ParseForm()
dec := common.NewDecoder(&common.DecoderOptions{TagName: "pd"})
if err := dec.Decode(p.Ctx.Request().Form, product); err != nil {
p.Ctx.Application().Logger().Debug(err)
}
log.Println(product)
_, err := p.ProductService.Insert(product)
if err != nil {
p.Ctx.Application().Logger().Debug(err)
}
p.Ctx.Redirect("/product/all")
}
就是说我要提交一个表单类的数据上去,但是呢,一开始我提交了json数据的格式,既然这样的话当然报错,控制台先打印了“成功进入postinsert",然后就是一系列的报错了。
但是当我用表单数据提交的时候,他根本就连”成功进入postinsert"这一句都不打印了。
请问这是什么原因,求解