使用其他文件的功能是其他目录Golang

我想在我的主要方法中使用一个名为“控制器”的文件夹中的方法,但事实证明,当我启动程序时它说找不到或定义该函数,我尝试按照 Golang 中的包指南进行操作文档,但是使用 Go 构建和 Go 安装这不起作用,我只想知道如何使用其他文件夹中的文件来获得更多订单,这里是代码和我的文件树,首先:UserController.go ,这里是 funcionLoadRecordsFromFile()... (重复...我尝试使用 go build 和 go install 从文档但不工作...)


package main

import (

    "net/http"

    "log"

)

func LoadRecordsFromFile(w http.ResponseWriter, r *http.Request) {

    // Maximum upload of 10 MB files

    r.ParseMultipartForm(10 << 20)

}

这是我的 main.Go,如果我想使用来自 UserController.go 的函数 LoadRecordsFromFile()


package main

import (

    "net/http"

    "github.com/go-chi/chi"

    "log"

)

func main() {

    r := chi.NewRouter()

    r.Post("/loadUsers", func(w http.ResponseWriter, r *http.Request) {

        LoadRecordsFromFile(w,r)

    })


    log.Print("Server started in port 3000")

    http.ListenAndServe(":3000", r)

}

档案是...


-GolangProject

-Main.go

-controllers

    --UserController.go


幕布斯6054654
浏览 131回答 1
1回答

梦里花落0921

您需要对代码进行一些更改。首先,您需要在UserController.go. 让我们controllers作为包使用。package controllersimport (&nbsp; &nbsp; "net/http"&nbsp; &nbsp; "log")func LoadRecordsFromFile(w http.ResponseWriter, r *http.Request) {&nbsp; &nbsp; // Maximum upload of 10 MB files&nbsp; &nbsp; r.ParseMultipartForm(10 << 20)}然后你Main.go需要一些改变。package mainimport (&nbsp; &nbsp; "net/http"&nbsp; &nbsp; "github.com/go-chi/chi"&nbsp; &nbsp; "log"&nbsp; &nbsp; "github.com/Giovanni2414/Truora/controllers")func main() {&nbsp; &nbsp; r := chi.NewRouter()&nbsp; &nbsp; r.Post("/loadUsers", func(w http.ResponseWriter, r *http.Request) {&nbsp; &nbsp; &nbsp; &nbsp; controllers.LoadRecordsFromFile(w,r)&nbsp; &nbsp; })&nbsp; &nbsp; log.Print("Server started in port 3000")&nbsp; &nbsp; http.ListenAndServe(":3000", r)}我认为这些变化就足够了。一些注意事项:只有你的主文件应该有package main.通常我们在我们之后定义包名current folder(但它可以不同)。同一文件夹下的所有文件必须具有相同的package名称。当您使用不同包下的功能时,您应该先导入所需的包,然后才能使用该功能。您导入的路径应该是这样的:<project-module-name>/<folder1>/<folder2>/../<final-folder>.最后,您应该像下面这样调用该函数:package_name.MyFunction()
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Go