为了账号安全,请及时绑定邮箱和手机立即绑定

Go Echo:POST 方法给出错误“方法不允许”

Go Echo:POST 方法给出错误“方法不允许”

Go
梵蒂冈之花 2022-12-13 15:58:55
使用 echo 构建应用程序并基本上创建了一些路由。GET 的工作正常,但后一个是给我错误: Do not really understand where the error lies here。{....."method":"GET","uri":"/addPerson", message=Method Not Allowed",".....bytes_in":0,"bytes_out":33}main.go 片段    func initEchoServer() {    e := echo.New()    e.Use(middleware.Logger())    e.Use(middleware.Recover())    // get all persons    e.GET("/persons", Info)    // get specific id    e.GET("/persons/:id", getPerson)    e.POST("/addPerson", addPerson)    e.Logger.Fatal(e.Start(viper.GetString("port")))}func addPerson(c echo.Context) error {    ctx := context.Background()    db, err := sql.Open("postgres", "host=postgres port=5432 user=postgres dbname=postgres password=postgres sslmode=disable")    if err != nil {        log.Fatal(err)    }    queries := postgres.New(db)    insertedPerson, err := queries.CreatePersons(ctx, postgres.CreatePersonsParams{        Firstname: "Mike",        Lastname:  "Jordan",    })    if err != nil {        log.Errorf("Failed to insert a person %v", err)        return err    }    fmt.Println(insertedPerson)    return c.JSONPretty(http.StatusOK, insertedPerson, "  ")}queries.sql.go 片段type CreatePersonsParams struct {    Firstname string    Lastname  string}func (q *Queries) CreatePersons(ctx context.Context, arg CreatePersonsParams) (Person, error) {    row := q.db.QueryRowContext(ctx, createPersons, arg.Firstname, arg.Lastname)    var i Person    err := row.Scan(&i.ID, &i.Firstname, &i.Lastname)    return i, err}
查看完整描述

2 回答

?
潇湘沐

TA贡献1816条经验 获得超6个赞

你在路由器中使用 post 方法

e.POST("/addPerson", addPerson)

您可以使用邮递员使用 POST 方法访问 API,不要使用浏览器


查看完整回答
反对 回复 2022-12-13
?
凤凰求蛊

TA贡献1825条经验 获得超4个赞

如果你在回显中使用 POST 注册路由,它只会在该路径上注册 POST 方法。但似乎你得到了那条路。你可以使用e.GET()



查看完整回答
反对 回复 2022-12-13
  • 2 回答
  • 0 关注
  • 120 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信