Categorygithub.com/kdada/tinygo
repositorypackage
0.0.0-20180503083115-ae40e7c1ccf7
Repository: https://github.com/kdada/tinygo.git
Documentation: pkg.go.dev

# Packages

No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author

# README

#TinyGo 1.0 一个轻量级Http框架

查看tinygo文档的方法如下:
(1) 确保GOROOT和GOPATH环境变量设置正确
(2) 确保tinygo的位置在$GOPATH/src/github.com/kdada/tinygo
(3) 在shell中执行如下命令

cd $GOROOT/bin
godoc -http :9999

(4) 通过 http://localhost:9999 访问本地文档,即可在Packages中找到tinygo的文档

一个tinygo项目基本结构如下(可通过web.cfg变更项目结构):

main.go
web.cfg
|-app
  |-favicon.ico
  |-robots.txt
  |-css
  |-js
  |-img
  |-views
    |-layout.json
    |-layout
      |-layout.html
    |-home
      |-index.html
|-controllers
  |-home.go
|-models
  |-model.go
|-services
  |-service.go

(1) main.go为项目启动文件
(2) app目录为应用文件目录,用于存放前端所有文件
(3) views内放置视图页面文件,layout.json为视图布局配置文件
(4) controllers为控制器文件目录,一般一个控制器一个文件
(5) models为模型文件目录
(6) services为服务文件目录,网络服务方法,数据库服务方法等可以放在该目录中

web.cfg 配置文件范例如下(UTF-8格式)


#tinygo配置文件

#应用名称
App = blog

#是否启用https,可选,默认为false
Https = false

#监听端口,默认为80,https为true则默认为443
Port = 8080

#证书(PEM)路径,如果启用了https则必填
#Cert = keys/cert.pem

#私钥(PEM)路径,如果启用了https则必填
#PrivateKey = keys/privatekey.pem

#首页
Home = /home/index

#是否启用session
Session = true

#session类型,参考tinygo/session,默认为memory
SessionType = memory

#session源,参考tinygo/session,默认为空
#SessionSource =

#session过期时间,单位为秒,csrf的session过期时间也由该值决定
SessionExpire = 1800

#Session Cookie名,默认为ssid
SessionCookieName = blog_ssid

#Session Cookie的过期时间,单位为秒,默认为0(0表示浏览器关闭后过期)
#SessionCookieExpire

#是否启用CSRF,默认为false
CSRF = true

#CSRF session类型,参考tinygo/session,默认为memory
CSRFType = memory

#CSRF session源,参考tinygo/session,默认为空
#CSRFSource =

#CSRF的token过期时间,单位为秒
#该过期时间不是CSRF的session的过期时间,而是生成的每个CSRF token的过期时间
CSRFExpire = 300

#CSRF Cookie名,默认为xid
CSRFCookieName = blog_xid

#CSRF 表单字段名,默认为csrf
CSRFTokenName = __xfield

#CSRF Cookie的过期时间,单位为秒,默认为0(0表示浏览器关闭后过期)
#CSRFCookieExpire

#静态文件目录,默认为content,多个目录用;分隔,最后一级目录名不能重复
Static = app/js;app/css;app/tmpl

#静态文件目录是否允许显示目录列表,默认为false
List = true

#视图文件目录,默认为views
View = app/views

#布局配置文件名,默认为空
LayoutConfigPath = app/views/layout.json

#视图文件扩展名,默认为html
TemplateExt = html

#模板文件内部分模板名,用于返回部分视图时使用,默认为Content
TemplateName = Content

#是否预编译页面路径,默认为false,生产环境为true可以提高效率
Precompile = false

#使用Api返回的数据的解析格式,默认为auto(其他设置包括json,xml)
Api = json

#网站图标路径,默认为favicon.ico
Favicon = app/favicon.ico

#爬虫协议文件路径,默认为robots.txt
Robots = app/robots.txt

#是否启用日志,默认为true
Log = true

#日志类型,参考tinygo/log,默认为console
LogType = console

#日志路径,日志类型为file的时候需要设置
#LogPath = logs

#异步日志,默认为false
LogAsync = false

#单次请求最大占用内存大小,默认32 MB
MaxRequestMemory = 33554432

layout.json 布局配置文件范例如下(UTF-8格式)

{
	"LayoutMap":{
		"Default":"layout/layout.html",
		"Index":"layout/layout.html"
	},
	"DefaultLayout":"Default",
	"LayoutSpec":{
		"home/index.html":"Index",
		"home/login.html":"Default",
		"xxhome/":"Index"
	}
}

(1) LayoutMap定义了布局文件和布局文件别名,按 别名:布局文件路径 进行映射
(2) LayoutSpec定义了视图文件或目录下的所有视图文件使用相应的布局文件,直接定义的视图文件到布局的映射优先级高于目录到布局的映射
(3) DefaultLayout定义了LayoutSpec没有定义的视图文件使用的默认布局,仅对非布局文件有效
(4) 使用该配置文件可以实现多重布局