用 echo 構建一個應用程式,基本上創建了一些路由。GET 作業正常,但發帖給我錯誤:不真正理解錯誤在哪里。
{...."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, " ")
}
query.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
}
uj5u.com熱心網友回復:
你在路由器中使用 post 方法
e.POST("/addPerson", addPerson)
您可以使用 postman 使用 POST 方法訪問 API,不要使用瀏覽器
uj5u.com熱心網友回復:
如果您在 echo 中使用 POST 注冊路由,它只會在該路徑上注冊 POST 方法。但似乎你得到了那條路。您可以使用e.GET().
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/473040.html
標籤:PostgreSQL 去 回声
