Web服务开发

1. 路由注册中: 路由//*的区别

  • /仅匹配URI为/时的路由,这是一个精准匹配规则
  • /*匹配所有的路由,是模糊匹配规则,并且在优先级的控制下,该路由的优先级最低,在其他路由都无法匹配的情况下,最后会使用/*路由;

2. 在init包初始化方法中执行路由注册,但是却访问不到注册的路由

我按照文档上面的示例进行执行对象注册,但是运行后访问注册的路由( http://127.0.0.1/object )提醒我404,好着急啊,我在线等。

  1. package demo
  2. import (
  3. "github.com/gogf/gf/frame/g"
  4. "github.com/gogf/gf/net/ghttp"
  5. )
  6. type Object struct {}
  7. func init() {
  8. g.Server().BindObject("/object", new(Object))
  9. }
  10. func (o *Object) Index(r *ghttp.Request) {
  11. r.Response.Write("object index")
  12. }
  13. func (o *Object) Show(r *ghttp.Request) {
  14. r.Response.Write("object show")
  15. }

回答:

  1. 如何判断路由是否执行成功?在程序运行后终端会打印出当前注册的路由表信息,检查是否注册成功。
  2. 该问题是没有在main包中引入demo包造成的,引入方式:
    1. import _ "PATH/TO/YOUR/PROJECT/PACKAGE"
    文档链接: 【路由注册-基本介绍

数据库ORM

参考 【数据库ORM-FAQ常见问题】 章节。以下为问题索引。

1. 数据库查询结果转json没有了数值

2. 表字段类型为datetime,参数为time.Time类型,写入后时区不对