基础配置篇:博客的访问路径路由配置和控制器

上一章节我们提到了路由配置,并且使用匿名函数写了一个Hello World的控制器,直接输出内容。但是在实际的项目的使用中,往往需要更多的路由入口和更自由的控制,也是为了页面逻辑更清晰,让各个go文件做到各司其职,因此我们需要将路由配置独立编写到一个独立的文件中去。

独立路由文件

下面我们就将路由配置放到前面我们已经创建好的route文件夹中,我们命名一个route.go 文件,并在里面添加内容:

package route

import (
	"github.com/kataras/iris/v12"
)

func Register(app *iris.Application) {
	app.Get("/", func(ctx iris.Context) {
		ctx.WriteString("Hello World")
	})
}

这里我们定义了一个Register函数,并将上一节我们在bootstrap.go 写的匿名函数放到这里来,观察下是否正常。

route.go 已经初步完成,我们还需要在bootstrap.go 中将这个函数绑定到iris中注册才能使用,我们再打开bootstrap.go,增加LoadRoutes 函数,并对Serv函数进行改造:

func (bootstrap *Bootstrap) LoadRoutes() {
	route.Register(bootstrap.Application)
}

func (bootstrap *Bootstrap) Serve() {
	bootstrap.Application.Logger().SetLevel(bootstrap.LoggerLevel)

  //在这里添加路由
	bootstrap.LoadRoutes()

	bootstrap.Application.Run(
		iris.Addr(fmt.Sprintf("127.0.0.1:%d", bootstrap.Port)),
		iris.WithoutServerError(iris.ErrServerClosed),
		iris.WithoutBodyConsumptionOnUnmarshal,
	)
}

好啦,我们现在做一步,试一步,点击右上角的绿色实心三角形运行起来,来浏览器看看是否正常:
在这里插入图片描述

不出意外,我们还是能看到Hello World。

使用控制器

接着,我们开始写控制器了。控制器可以独立处理单个路由。我们依然是先给首页写控制器。

在我们前面创建的controller 目录中,创建一个index.go 文件,并写上 IndexPage 函数:

package controller

import (
	"github.com/kataras/iris/v12"
)

func IndexPage(ctx iris.Context) {
	ctx.WriteString("Hello World")
}

这里我们依然先试着输出Hello World,看看效果。

函数写完了,我们还需要在路由文件中,将这个函数注册到路由中,我们再次打开route.go,换掉匿名函数:

func Register(app *iris.Application) {
	app.Get("/", controller.IndexPage)
}

再次点击右上角的绿色实心三角形运行起来,来浏览器看看是否正常:
在这里插入图片描述

不出意外,我们还是能看到Hello World。

如果弹出下面这个提示框,请勾选复选框(Do not show this dialog in the future),让它不再提示,并选择Stop and Rerun。
在这里插入图片描述

测试没有问题,接下来,我们就可以在IndexPage函数中,写更多的业务逻辑代码了。下一节我们继续。

完整的项目示例代码托管在GitHub上,需要查看完整的项目代码可以到github.com/fesiong/goblog 上查看,也可以直接fork一份来在上面做修改。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值