小编use*_*268的帖子

Golang - "go run main.go"和编译之间的区别

在Go中编写了一些脚本后,我问自己,.go-file 的编译与后来的执行和go run FILE.go命令在性能等方面是否有任何区别.

如果我使用这些方法之一启动Web服务,是否有任何优势?

performance command-line compilation go

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

使用gulp.src()列出数组中的所有文件

我正在尝试创建给定文件夹中所有文件(路径)的索引.到目前为止,我一直gulp.src(filePath)努力实现这一目标.根据这篇博客文章,它应该工作:

gulp.src(files)是包含文件/文件路径的字符串或数组.

我目前的代码:

gulp.task("createFileIndex", function(){
    var index = gulp.src(['./content/**/*.*']);
    console.log("INDEX:", index[0]);
});
Run Code Online (Sandbox Code Playgroud)

通过输出gulp.src()带有index[0]I get 的返回值,undefined整个index输出只有一个没有任何文件路径的大型字典.

javascript gulp

13
推荐指数
5
解决办法
2万
查看次数

使用ListenAndServe的Goroutines可以提高性能吗?

我对Go的例程并不是很熟悉,但是因为我正在使用路由器,net/http所以我看到了几次ListenAndServe()被go例程包裹起来.

服务器需要能够同时处理多个请求以提高效率.那么为什么要使用例程作为"轻量级线程"呢?并发性是否具有任何优势?

这是OpenShift的一个例子

package main

import (
    "fmt"
    "net/http"
)

func helloHandler(w http.ResponseWriter, r *http.Request) {
    fmt.Fprintln(w, "Hello OpenShift!")
}

func main() {
    http.HandleFunc("/", helloHandler)

    go func() {
        fmt.Println("serving on 8080")
        err := http.ListenAndServe(":8080", nil)
        if err != nil {
            panic("ListenAndServe: " + err.Error())
        }
    }()

    go func() {
        fmt.Println("serving on 8888")
        err := http.ListenAndServe(":8888", nil)
        if err != nil {
            panic("ListenAndServe: " + err.Error())
        }
    }()
    select {}
}
Run Code Online (Sandbox Code Playgroud)

concurrency go

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

读取文件作为模板,执行并写回

我正在尝试解析CSS文件,其中可以注入在配置文件中定义的变量.目前该功能有:

  1. 根据给定的路径参数打开文件
  2. 解析文件的内容
  3. 通过注入config变量来执行模板
  4. 将呈现的内容写入控制台而不是原始文件
func parse(path string) {
    f, err := ioutil.ReadFile(path)

    if err != nil {
        log.Print(err)
        return
    }

    // Parse requires a string
    t, err := template.New("css").Parse(string(f))

    if err != nil {
        log.Print(err)
        return
    }

    // A sample config
    config := map[string]string {
        "textColor": "#abcdef",
        "linkColorHover": "#ffaacc",
    }   

    // Execute needs some sort of io.Writer
    err = t.Execute(os.Stdout, config)  

    if err != nil {
        log.Print("Can't execute ", path)
    }
}
Run Code Online (Sandbox Code Playgroud)

我的问题是template.Parse()需要的内容串和template.Execute()一个io.Writer作为参数.我试图打开文件 …

io templates file go

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

Restful API - 带有单个或所有错误的 JSON 响应

我当前的项目是一个 Restful API,它验证 POST 请求以创建新用户,并且可能会发生多个错误(具有 HTTP 状态):

  1. 未设置用户名(400 BadRequest)
  2. 用户名已被占用(409 冲突)
  3. 服务器无法建立数据库连接(500内部服务器错误)
  4. ...

我应该立即发回这样的 JSON 响应吗

{
    "status": 400,
    "Message": "No username is set"
}
Run Code Online (Sandbox Code Playgroud)

如果检测到错误,或者如果我累积所有错误应该更好,如下所示:

{
    "status": <HTTP STATUS CODE>,
    "errors": [
        {"message": "Username is not set."},
        {"message": "Can't access the database."}
    ]
}
Run Code Online (Sandbox Code Playgroud)

最后一种方法不需要多个请求来发送有效负载。但是,如果未设置用户名(400 错误请求)或服务器无法访问数据库(500 内部服务器错误),应该使用哪个状态代码?

rest error-handling json

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

Python异常处理 - 如何做到pythonic?

我还在学习Python programmimg语言.我在代码异常方面问自己,当需要以pythonic方式处理这种情况时.我读了几遍"你永远不应该默默地传递错误".

例如一个小功能:

def square(list_with_items):
    return [i**2 for i in list_with_items]
Run Code Online (Sandbox Code Playgroud)

如果有人将元组作为参数传递,是否需要编写错误处理程序?或者,当我必须检查用户输入的验证时,它更有意义吗?

python exception

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

(Python) - Peewee - 如何创建外键

我试图通过外键在两个表字段之间创建关系,但在文档或 stackoverflow 上的相关线程中的示例失败。这是我的代码:

class User(BaseModel):
    """ Field Types """
    user_id = PrimaryKeyField()
    username = CharField(25)
    role = ForeignKeyField(User, to_field='role_id')

    class Meta:
        db_table = 'users'


class User(BaseModel):
    """ Field Types """
    role_id = PrimaryKeyField()
    rolename = CharField(25)

    class Meta:
        db_table = 'roles'
Run Code Online (Sandbox Code Playgroud)

to_field 指的是我的代码片段中等效表“users”中的相关字段。在 peewee 的文档中,我看到 related_names 作为参数,它引用用户模型中不存在的字段推文。

class User(Model):
    name = CharField()

class Tweet(Model):
    user = ForeignKeyField(User, related_name='tweets')
    content = TextField()
Run Code Online (Sandbox Code Playgroud)

希望有人可以解释这个语法。

python sql orm foreign-key-relationship peewee

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

编译器:尽管给出了所有参数,但给出了太多的论据

我想使用struct DataResponse作为参数JSON()来响应用户.通过初始化DataResponse我得到错误消息的实例,给出了太多的参数,但给出了所有必要的参数.

type DataResponse struct {
    Status int         `json:"status"`
    Data   interface{} `json:"data"`
}

func GetUser(rw http.ResponseWriter, req *http.Request, ps httprouter.Params) {
    user := models.User{}
    // Fetching user from db

    resp := DataResponse(200, user)
    JSON(rw, resp) // rw is the ResponseWriter of net/http
}
Run Code Online (Sandbox Code Playgroud)

编译器抛出以下错误消息:

too many arguments to conversion to DataResponse: DataResponse(200, user)
Run Code Online (Sandbox Code Playgroud)

DataResponse需要两个给定的参数,并且Data是一个接口,因此它应该接受models.User为数据类型.

go

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

名称或ID为restl api的url

我目前用一条users路线建立一个宁静的api .如果用户名是唯一的,那么使用用户名或他的id作为参数更具有特异性吗?

example.com/api/users/johndoe
Run Code Online (Sandbox Code Playgroud)

要么

example.com/api/users/123456
Run Code Online (Sandbox Code Playgroud)

此外,我计划了project资源的路线.如果我在这里要求project-id,它会是一个不一致的设计吗?

rest restful-url nested-routes

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

如何访问接口的属性

我的目的是在两个响应结构的标头和正文中使用 HTTP 状态代码。但是,无需将状态代码设置两次作为函数参数,并再次设置结构以避免冗余。

response的参数JSON()是一个允许接受两个结构的接口。编译器抛出以下异常:

response.Status undefined (type interface {} has no field or method Status)
Run Code Online (Sandbox Code Playgroud)

因为响应字段不能有状态属性。有没有其他方法可以避免设置状态代码两次?

type Response struct {
    Status int         `json:"status"`
    Data   interface{} `json:"data"`
}

type ErrorResponse struct {
    Status int      `json:"status"`
    Errors []string `json:"errors"`
}

func JSON(rw http.ResponseWriter, response interface{}) {
    payload, _ := json.MarshalIndent(response, "", "    ")
    rw.WriteHeader(response.Status)
    ...
}
Run Code Online (Sandbox Code Playgroud)

interface go

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