snake 发布于 2017-08-09

go tool pprof

  1. 加入代码
    import _ "net/http/pprof"
    go func() {
         log.Println(http.ListenAndServe("localhost:6060", nil))
    }()
    
  2. 编译并运行
  3. 新窗口打开命令行

阅读全文 »

snake 发布于 2017-06-18

tips 各种小记录

hide win

go build -ldflags "-H windowsgui"

go build -ldflags "-s -w" 

-s 去掉符号表,然后 panic 的时候 stack trace 就没有任何文件名/行号信息了。
-w 去掉 DWARF 调试信息,得到的程序就不能用 gdb调试。

查看汇编

go tool compile -S main.go

static file

// 根访问
http.Handle("/", http.FileServer(http.Dir(".")))
// 指定 路径访问
http.Handle("/static/", http.StripPrefix("/static/", http.FileServer(http.Dir("static/"))))

cookie

	http.HandleFunc("/one", func(w http.ResponseWriter, r *http.Request) {
		cookie := &http.Cookie{Name: "cookie", Value: "zxysilent", Path: "/", HttpOnly: true,MaxAge: 7200}
		http.SetCookie(w, cookie)
	})
	http.HandleFunc("/two", func(w http.ResponseWriter, r *http.Request) {
		cookie, _ := r.Cookie("cookie")
		w.Write([]byte(cookie.String()))
	})

跨域

w.Header().Set(`Access-Control-Allow-Origin`, `*`)

中间件

1

http.Handle(`/`, mid(http.HandlerFunc(fn)))
func mid(next http.Handler) http.Handler {
	return http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
		//中间件的逻辑
		w.Header().Set("Content-Type", "application/json")
		w.Header().Set(`Access-Control-Allow-Origin`, `*`)
		next.ServeHTTP(w, r)
	})
}

2

http.HandleFunc(`/`, mid(fn))
func mid(next http.HandlerFunc) http.HandlerFunc{
	return func(w http.ResponseWriter, r *http.Request) {
		//中间件的逻辑
		w.Header().Set("Content-Type", "application/json")
		w.Header().Set(`Access-Control-Allow-Origin`, `*`)
		next.ServeHTTP(w, r)
	}
}

npm

prefix = D:\Program Files\nodejs\node_global
cache = D:\Program Files\nodejs\node_cache

cnpm

npm install -g cnpm --registry=https://registry.npm.taobao.org
// --history-api-fallback 解决本地开发 vue-router-history模式 404 错误
"scripts": {
    "dev": "webpack-dev-server --content-base ./ --open --inline --hot  --port=82 --history-api-fallback --compress --config build/webpack.dev.config.js",
    "build": "webpack --progress --hide-modules --config build/webpack.prod.config.js"
  },

install git

sudo apt-get install git git-core git-doc

node

npm install --registry=https://registry.npm.taobao.org

prod

npm run webpack.build.production

阅读全文 »

snake 发布于 2017-04-10

nginx参数

基础cmd

sudo nginx #打开 nginx
nginx -s reload|reopen|stop|quit  #重新加载配置|重启|停止|退出 nginx
nginx -t   #测试配置是否有语法错误
nginx [-?hvVtq] [-s signal] [-c filename] [-p prefix] [-g directives]

-?,-h           : 打开帮助信息
-v              : 显示版本信息并退出
-V              : 显示版本和配置选项信息,然后退出
-t              : 检测配置文件是否有语法错误,然后退出
-q              : 在检测配置文件期间屏蔽非错误信息
-s signal       : 给一个 nginx 主进程发送信号:stop(停止), quit(退出), reopen(重启), reload(重新加载配置文件)
-p prefix       : 设置前缀路径
-c filename     : 设置配置文件
-g directives   : 设置配置文件外的全局指令

阅读全文 »

snake 发布于 2017-04-08

把json图片信息展示到页面

如数据库返回格式为

 var datas = {
            count: 3,
            imgs: [
                'https://ss0.bdstatic.com/70cFuHSh_Q1YnxGkpoWK1HF6hhy/it/u=2905893513,2695425341&fm=23&gp=0.jpgg',
                'https://ss3.bdstatic.com/70cFv8Sh_Q1YnxGkpoWK1HF6hhy/it/u=3633691784,3186862163&fm=23&gp=0.jpg',
                'https://ss1.bdstatic.com/70cFuXSh_Q1YnxGkpoWK1HF6hhy/it/u=3706772667,1323205698&fm=23&gp=0.jpg'
            ]
        }

如何把这些信息以图片的方式展现到

阅读全文 »