小编the*_*hai的帖子

如何将unix时间戳格式化为RFC3339 - golang?

我需要将unix时间戳(例如1392899576)转换为RFC3339(例如1997-07-16T19:20 + 01:00).我试过下面的代码

    timeValue := "1392899576"
    layout := time.RFC3339
    t, _ := time.Parse(layout, timeValue)

    fmt.Fprintf(w, "%s", t)
Run Code Online (Sandbox Code Playgroud)

返回

0001-01-01 00:00:00 +0000 UTC
Run Code Online (Sandbox Code Playgroud)

go

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

如何在谷歌应用引擎上设置SSL(自定义域名)

Google刚刚宣布了对自定义域的SSL支持,但由于无法在GAE上生成证书签名请求(CSR),我无法理解它是如何设置的?

http://support.google.com/a/bin/answer.py?hl=zh-CN&hlrm=en&answer=2644386 我错过了什么吗?

google-app-engine

6
推荐指数
2
解决办法
3846
查看次数

golang mux,路由通配符和自定义功能匹配

我正在使用mux包,它似乎运行得很好,除了它似乎不支持复杂的路由或至少我不知道它是如何做的.我有以下几条路线:

router := mux.NewRouter()
router.HandleFunc("/{productid}/{code}", product)
router.HandleFunc("/{user}", userHome)
router.HandleFunc("/search/price", searchPage)
Run Code Online (Sandbox Code Playgroud)

所以我有两个问题:

  • 如何定义/ search/price/*这样的通配符路由,以便/ search/price/29923/rage/200/color = red等请求可以匹配?

  • 是否可以向现有路线添加自定义条件?例如,如果路由是/{productid}/{code}和函数x返回true,请使用此handlerTrue,如果它返回falseuse handlerFalse.

我试图添加类似.MatcherFunc(myfunction(ip)bool)路线的东西 ,但它抱怨路由器没有这样的方法.

目前我正处理处理程序内的"自定义"条件.

go mux

6
推荐指数
2
解决办法
1万
查看次数

如何将东北坐标转换为纬度经度?

我需要转换 EastingsNorthingsOSGB36坐标转换为纬度和经度使用转到坐标.因此,我想知道是否有任何包这样做.从头开始写一个看起来并不简单.我在沙盒VM中运行代码,因此代码必须是纯粹的Go.

输入:

  • 北距 - 国家电网起源以北的距离.
  • Easting - 国家电网起源以东的距离.

例:

 348356,862582
Run Code Online (Sandbox Code Playgroud)

输出(十进制度-DDD):

  • 纬度
  • 经度

例:

41.40338, 2.17403
Run Code Online (Sandbox Code Playgroud)

gis go

6
推荐指数
0
解决办法
2964
查看次数

为什么 keyup/keydown 不会在“选择”时触发?

当客户端在选项之间移动时,为什么不会触发键盘事件select?是否还发送了其他事件?

如何重现:

  • 聚焦于选择的元素。
  • 打开选择的选项。
  • 使用键盘(向上/向下)箭头在选择选项中移动。

结果:当您使用向上/向下键盘键浏览选项时,不会发送任何事件。

超文本标记语言

<!-- The second value will be selected initially -->
<select name="text"> <!--Supplement an id here instead of using 'text'-->
  <option value="value1">Value 1</option> 
  <option value="value2" selected>Value 2</option>
  <option value="value3">Value 3</option>
</select>
Run Code Online (Sandbox Code Playgroud)

JS

function onkeyEvent(evt ){
    console.log(evt);
}
            window.addEventListener('keyup', onkeyEvent, true);
            window.addEventListener('keydown', onkeyEvent, true);
            window.addEventListener('keypress', onkeyEvent, true);
Run Code Online (Sandbox Code Playgroud)

仅在选择选项后才会触发更改事件,而不是在客户端选择(在选项中移动)时触发,因此我不接受它作为答案。

javascript keyboard-events

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

Google云端存储无法与Google Apps配合使用?

我正在尝试使用现在在App Engine网站的"文档"部分下发布的Google云端存储API.该文档声明您必须在API控制台中将appengine服务帐户添加为团队成员.但是,我们在Google Apps域中使用云存储,该域只允许将该域中的用户添加为团队成员.那么,是不是可以添加服务帐户(is@appspot.gserviceaccount.com)?有没有解决方法?

google-app-engine google-cloud-storage

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

使用javascript更改URL链接而不刷新

是否可以在不刷新页面的情况下自动将url example.com/4000/title-2/#!4000更改为example.com/4000/title-2?基本上是从URL中删除"/#!4000".请注意,在hashbang之前删除"/"并不仅仅是hashbang很重要.

javascript browser-history

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

如何解析方法声明?

我正在尝试解析方法声明。基本上,我需要获取接收方基本类型(type hello)和返回类型(notypeerror)的语法节点。该ast程序包看起来很简单,但是由于某种原因我没有得到我需要的数据(即,报告的字段为nil)。

唯一有用的数据似乎仅在Object -> Decl类型为字段的字段中提供,interface{} 因此我认为我无法序列化它。

任何帮助,将不胜感激。代码如下:

package main

import (
    "fmt"
    "go/ast"
    "go/parser"
    "go/token"
)

func main() {
    // src is the input for which we want to inspect the AST.
    src := `
package mypack
// type hello is a cool type
type hello string

// type notype is not that cool
type notype int

// func printme is like nothing else.
func (x *hello)printme(s string)(notype, error){ …
Run Code Online (Sandbox Code Playgroud)

parsing go

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

RESTful (HATEOAS) 对专业客户实用吗?

是否存在代表使用和利用 RESTful 原则实现的真实世界应用程序的概念验证客户端(即 Web 应用程序)?我能找到的只有 API 浏览器,但现实世界应用程序(即社交网络或电子商务网站)的开发却大不相同。

我已经阅读了 Roy 的作品和相关论文,但我仍然无法理解如何在客户端开发中充分利用 Restful。我总是最终在客户端上存储状态或专门进行媒体/类型渲染。例如,相同的资源(即配置文件资源)根据上下文(即在主页、产品页面或专用配置文件页面上)以不同的方式呈现,因此告别媒体类型-> 代码按需呈现。

我真的看不出 HATEOAS 比具有明确定义/自动生成的IDL(即 json 超模式)的 API 有任何优势(以我的工作方式)。

我目前的结论是只有通用客户端(即谷歌)可以从 HATEOS 中受益,而不是现实世界/专业应用程序。如果您的 API 启用了 HATEOS 而不是IDL描述,那么专门的客户端开发似乎没有任何好处。

rest hateoas restful-architecture

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

为什么 defer 对周围函数中定义的变量的行为与命名结果不同?

下面的程序返回

<nil>
hello
Run Code Online (Sandbox Code Playgroud)

我希望两者都会返回“hello”,但事实并非如此。我发现该行为在语言规范中作为示例给出。

例如,如果延迟函数是函数文字,并且周围函数具有在文字范围内的命名结果参数,则延迟函数可以在返回结果参数之前访问和修改结果参数。

我的问题是:为什么 defer 对周围函数中定义的变量的工作方式与对命名结果的工作方式不同?这不就是在周围函数返回之前执行的闭包吗?

package main

import (
    "errors"
    "fmt"
)

func main() {

    fmt.Println(up())
    fmt.Println(up2())

}

func up() error {
    var err error
    defer func() {
        err = errors.New("hello")
    }()
    return err
}

func up2() (err error) {
    defer func() {
        err = errors.New("hello")
    }()
    return err
}

func up3() error {
    var err error
    fn := func() {
        err = errors.New("hello")
    }
    fn()
    return err
}
Run Code Online (Sandbox Code Playgroud)

go

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

字符串 - 在数字前获取字符

我有一些字符串,例如E2 9NZ, N29DZ,EW29DZ.在上面的例子中E,我需要在第一个数字之前提取字符: N,, EW.我应该使用正则表达式吗?该字符串包看起来真的不错,但似乎并不来处理这种情况(提取特定类型之前的所有内容).

编辑:

为了澄清"问题:"我不知道用什么方法是更地道,以,也许有可能提供更好的性能.

go

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

使用BoltDB开始使用Bleve

我试图将我的头脑包裹在Bleve周围,我理解教程,视频和文档中正在发生的一切.但是当我在BoltDB上使用它并且不知道如何启动时,我感到非常困惑.

假设我有一个现有的BoltDB数据库,称为data.db填充结构类型为Person的值

type Person struct {
   ID int          `json:"id"`             
   Name string     `json:"name"` 
   Age int         `json:"age"`
   Sex string      `json:"sex"`
}
Run Code Online (Sandbox Code Playgroud)

如何索引此数据以便我可以进行搜索?如何处理将来存储在数据库中的数据的索引?

任何帮助将受到高度赞赏.

go boltdb bleve

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

如何使用随机发件人从Google App Engine发送电子邮件?

如何使用自定义域名(例如xyz@myshop.com)通过随机非应用管理员发件人从Google App Engine发送电子邮件?我们需要允许我们网站的用户通过定制的消息系统相互通信,但也允许他们直接从他们的电子邮件回复.类似于craigslist系统的东西.但是,似乎GAE不允许我们从非管理员的地址发送电子邮件.有没有解决方法/补丁?我们是myshop.com域名的所有者(通过谷歌应用程序验证)所以我不明白为什么不允许这样的事情.

google-app-engine google-app-engine-patch

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