Go 刚开始看 beego,CURD 练习,碰到点问题

ad583255925 · 2017年07月20日 · 最后由 YYYYY 回复于 2018年05月23日 · 9445 次阅读

myapp/main.go

package main

import (
    "github.com/astaxie/beego"
    "github.com/astaxie/beego/orm"
    _ "github.com/go-sql-driver/mysql"
    _ "myapp/routers"
)

func init() {
    orm.RegisterDriver("mysql", orm.DRMySQL)
    orm.RegisterDataBase("default", "mysql", "root:rcc123@/go_test?charset=utf8")
}

func main() {
    beego.Run()
    //orm.RunCommand()
}

myapp/routers/router.go

package routers

import (
    "github.com/astaxie/beego"
    "myapp/controllers"
)

func init() {
    beego.Router("/", &controllers.MainController{})
    beego.Router("/users", &controllers.UserController{}, "*:Index")
}

myapp/models/user.go

package models

import "github.com/astaxie/beego/orm"

type User struct {
    Id   int
    Name string
}

func init() {
    orm.RegisterModelWithPrefix("go_", new(User))
}

myapp/controllers/users_controller.go

package controllers

import (
    "github.com/astaxie/beego"
    "github.com/astaxie/beego/orm"
    "myapp/models"
)

type UserController struct {
    beego.Controller
}

func (u *UserController) Index() {
    var users []*models.User
    o := orm.NewOrm()
    num, err := o.QueryTable("user").All(&users)
    u.Data["users"] = users
    u.TplName = "users.tpl"
}

报错

# myapp/controllers
controllers/users_controller.go:16: num declared and not used
controllers/users_controller.go:16: err declared and not used
2017/07/20 17:30:18 ERROR    ▶ 0017 Failed to build the application: # myapp/controllers
controllers/users_controller.go:16: num declared and not used
controllers/users_controller.go:16: err declared and not used

学 go 是听说并发还挺可观,想拿来当 api 至于为什么不去 go 社区问,因为感觉那边的人不是很友好。。

最后一句话内涵挺深。这个是 go 语言的要求,没有用到的变量是不必要存在代码中,编译的时候 就报错,告诉你这个变量可以不用定义,请移除,可以用_ 代替。

controllers/users_controller.go:16: num declared and not used

错误提示都这样了,这种问题去哪儿问,别人都不会友好的。😂

ch3n 回复

确实,母语是 ruby,没碰到过这种。😅

写 API 什么的别用 Beego 了吧,太重了,Golang 自己的 net/http 或者 Gin 这一类的框架完全可以满足了,出问题查源码也比较好查

teddy_1004 回复

go 语言感觉写起来挺费劲的,不用框架组织不好

什么时候有个 go 的节点😀

为什么不用 revel 呢

jjym 回复

我看 go 语言 web 框架一大堆,也不知道哪个好

还有我想了解下 rails-api 比起来,beego 或者 revel 这类框架,能有多少优势

我又碰到一个问题,假如我想发送一个 PUT 或者 DELETE 请求,应该怎么做呢,离开了 rails, 😂 😂 😂感觉寸步难行

API Examples

Using GET, POST, PUT, PATCH, DELETE and OPTIONS

func main() {
    // Disable Console Color
    // gin.DisableConsoleColor()

    // Creates a gin router with default middleware:
    // logger and recovery (crash-free) middleware
    router := gin.Default()

    router.GET("/someGet", getting)
    router.POST("/somePost", posting)
    router.PUT("/somePut", putting)
    router.DELETE("/someDelete", deleting)
    router.PATCH("/somePatch", patching)
    router.HEAD("/someHead", head)
    router.OPTIONS("/someOptions", options)

    // By default it serves on :8080 unless a
    // PORT environment variable was defined.
    router.Run()
    // router.Run(":3000") for a hard coded port
}
需要 登录 后方可回复, 如果你还没有账号请 注册新账号