小编Ari*_*vil的帖子

如何使用blackfriday为golang模板(html或tmpl)渲染markdown?

我使用Martini框架,我有一些markdown文件,我想在tmpl/html模板中将其渲染为HTML.

降价文件如下:

title: A Test Demo
---
##ABC
> 123
Run Code Online (Sandbox Code Playgroud)

和模板文件如下:

<head>
  <title>{{name}}</title>
</head>

<body>
  <h2>{{abc}}</h2>
  <blockquote>
    <p>{{xyz}}</p>
  </blockquote>
</body>
Run Code Online (Sandbox Code Playgroud)

我使用blackfriday解析markdown和return []byte类型,下一步我想将markdown文件渲染到这个模板并将每个块放到正确的位置,那么我该怎么做呢?或者用任何方式更好地做到这一点?

html markdown render go martini

14
推荐指数
1
解决办法
6893
查看次数

io.of('namespace').emit('event',message)在socket.io中不使用namespace

我有一个像这样的应用程序:

io.of('/hello').on('connection', function(socket) {
    socket.emit('world', {});
});

app.post('/', function *(next) {
    console.log("At here......");
    var pushMessage = (yield parse.json(this));
    console.log(pushMessage);
    if(flag !== 0) {
//        io.of('/hello/').emit('world', pushMessage);
        io.sockets.emit('world', pushMessage);
    } else {
        console.log("Do Nothing");
    }
});
Run Code Online (Sandbox Code Playgroud)

它收到一个http请求并发出一个事件.当我使用io.sockets.emit时它运行良好,但是当我用'io.of('hello')指定一个命名空间时,发出'它'不起作用,为什么?

我的客户端是这样的:

var socket = io.connect('http://localhost:3000', {
  'reconnection delay': 100,
  'reconnection limit': 100,
  'max reconnection attempts': 10
});
//server side use io.sockets.emit
socket.on('world', function(data) {
  alert(data.a);
});

//if server side use io.of('/hello/').emit
//socket.of('/hello/').on('world', function(data) {
//  alert(data.a);
//});
Run Code Online (Sandbox Code Playgroud)

node.js socket.io

3
推荐指数
1
解决办法
8483
查看次数

如何在Go中循环结构切片?

我最近将一个json消息解析为结构数组,如下所示:

type Fruit struct {
  Number string
  Type string
}

type Person struct {
  Pid string
  Fruits []Fruit
}

func main() {
  var p Person
  str := `{"pid":"123","fruits":[{"number":"10","type":"apple"},{"number":"50","type":"cherry"}]}`
  json.Unmarshal([]byte(str), &p)

  //loop struct array and insert into database
  stmt, err := tx.Prepare(`insert into empi_credentials(PID, type, num) values(?, ?, ?)`)
  if err != nil {
    panic(err.Error())
  }
  defer stmt.Close()

  for x := range p.Fruits {
    if _, err = stmt4.Exec(string(i), x.Type, x.Number); err != nil {
      log.Println("stmt1.Exec: ", err.Error())
      return
    }
  } …
Run Code Online (Sandbox Code Playgroud)

struct for-loop go slice

1
推荐指数
1
解决办法
1679
查看次数

如何在Go中使用清晰的结构值来优化性能?

我的API服务器接受post请求,请求体是JSON,所以我创建两个struct对象来接受JSON字符串并将其持久化到database.But每次我接受一个请求我需要一遍又一遍地创建struct对象,我试着清除结构而不是重新创建它.演示代码如下:

//The two struct
type Card struct {
  Number string
  Type   string
}

type Person struct {
  Name string
  Cards []Card
}

var p Person

//parse JSON to the struct object
func init() {
  str := `{"name":"aaa","cards":[{"number":"1","type":"visa"},{"number":"2","type":"mastercard"}]}`
  json.Unmarshal([]byte(str), &p)
}

func PersistToDatabase() {
  var err error
  tx, err := db.Begin()
  if err != nil {
    return
  }

  defer func() {
    if err != nil && tx != nil {
      if err := tx.Rollback(); err != nil {
        return
      }
    } …
Run Code Online (Sandbox Code Playgroud)

optimization performance struct transactions go

0
推荐指数
1
解决办法
244
查看次数