同学们好!千里之行,始于足下。在这节课里,我们的任务是在浏览器里显示《我家租房网》的首页。


首先,我们将在前端服务器中增加显示默认首页的路由处理,其次借助浏览器的调试功能,修复程序运行过程中出现的错误,逐步完善其它功能。


常识告诉我们,打开浏览器,在地址栏中输入某个应用的URL,浏览器窗口即会显示出该应用的默认首页。该页面是应用一切功能的入口,也是用户访问应用的起点。


上一节课,我们在front-end工程目录的view子目录下,放置了一系列静态页面及其所依赖的JavaScript代码、层叠式样式单、图标图片等各种资源。其中就包括一个名为index.html的静态页面,这就是《我家租房网》应用的默认首页。我们所要达到的效果是,只要用户在浏览器的地址栏中输入localhost:8080/home,就能够显示该页面。为此,我们可以通过路由对象的Static方法,创建一条静态路由。该方法需要两个参数,第一个参数为路由路径,比如“/home”,第二个参数为路由目标,比如“./view/index.html”。关于路由目标,这里使用了相对路径,因为前端服务器的可执行程序就位于front-end工程目录下,与view子目录同级。我们甚至可以使用更简单的形式,比如“./view”。在不显式给出文件名的情况下,Gin框架会缺省选择index.html文件。


修改front-end工程目录下的main.go文件:

这里我们调用了路由对象的Static方法,创建了一条静态路由,将用户输入的资源路径“/home”,路由到指定的页面文件,当前目录下view子目录中的index.html。


启动前端,用浏览器访问localhost:8080/home,可以看到《我家租房网》的默认首页,已赫然显现在浏览器窗口中。


在Chrome浏览器中按下F12功能键,会打开调试窗格,点选Network标签,会看到三个以红色显示的错误信息:session、index和areas。点击其中的“session”,选择Headers标签,会看到发生错误的请求URL为localhost:8080/api/v1.0/session,状态码为404。发生这样的错误并不奇怪,我们的前端服务器确实没有为路径“/api/v1.0/session”设置路由。


GET方法结合/api/v1.0/session路径表示获取会话。具体如何获取会话,我们会在后续课程中为大家详细介绍。这节课,我们只是添加相应的路由处理,消灭错误。


这里我们要为获取会话添加一条路由,GET方法结合/api/v1.0/session路径,处理函数名为GetSession。


再次修改front-end工程目录下的main.go文件:

这里我们调用了路由对象的GET方法,为获取会话添加了一条路由,将GET方法结合/api/v1.0/session路径,路由到controller包的GetSession函数。将GetSession函数定义在controller包里是因为该函数的主要任务是执行业务逻辑,属于MVC中的C,即控制器层的部分。


当然,在controller包里真的得有GetSession函数。


为此,我们在front-end工程目录下的controller子目录中创建一个名为user.go的文件:

在这里我们创建了一个名为controller的包,并在包中定义了一个名为GetSession的函数。在GetSession函数里,我们创建了一个字符串到字符串的映射,并为其添加了两个键值对,一个表示错误代码,另一个表示错误描述。最后通过Gin框架调用该函数时传入的上下文对象的JSON方法,构造响应报文,响应头中的状态码为200,响应体为一个JSON字符串,源于对映射的序列化。


重启前端,用浏览器访问localhost:8080/home,右上角出现“登录”和“注册”按钮。


在调试窗格中点选Network标签,会看到session错误消失了。点击“session”,选择Response标签,会看到JSON形式的响应体字符串,其中的错误代码为“4100”,错误描述为“用户未登录”,这与我们在GetSession函数中编写的代码是吻合的。


点击“注册”按钮,进入注册页面。这时我们会发现获取图片验证码失败,这正是我们在下节课需要解决的问题。


谢谢大家,我们下节课再见!