2014-02-16 1 views
-1

이동 중에 웹 서버를 개발하는 데 도움이 필요합니다.Golang이 동적 함수 생성 (런타임 중)

func handler(w http.ResponseWriter, r *http.Request) { 
    fmt.Fprintf(w, "Hi there, I love %s!", r.URL.Path[1:]) 
} 

func main() { 
    http.HandleFunc("/", handler) 
    http.ListenAndServe(":8080", nil) 
} 

이 코드가 수행하는 모든이에 "localhost"를 HTML을 출력하는 핸들러 함수에가는 GET 요청을 리디렉션 그대로 따라하기 매우 간단하다 : 나는 특히, http://golang.org/doc/articles/wiki/에서이 예제를 초기 코드를했다.

내가 가지고있는 문제는 내 서버에서 (특히 JQ 및 이미지 등) 내 페이지에서 자바 스크립트 연결을 사용한다는 것입니다. 따라서 GET 요청이 해당 아티팩트에 올 때 드라이브에서 바이트로 가져와 핸들러의 클라이언트 브라우저 (위와 같음)에 제공해야합니다.

그러나; 런타임 전에 로컬 폴더에 어떤 파일이 있는지 모르기 때문에이 핸들러를 미리 만들 수는 없습니다. 런타임에 동적으로 함수를 만드는 방법이 있는지 궁금합니다. 나는 이것에 대해 잘못된 길로 갈거야 어쩌면 경우

for file in files: 
    http.HandleFunc(file.location, handler) 

누군가가 그들을 읽은 후이 로컬 파일에 대한 처리기를 만드는 방법에 대한 아이디어가 있으면 알려 주시기 바랍니다 : 그래서 내가 생각하고있어 psuedocode는 다음과 같이 갈 것 나도 알아. 나는 또한 파일의 양 또는 얼마나 많은 생각이 없지만 모든 파일을 읽기 위해 Golang을 사용할 수 있습니다.

감사합니다.

+1

이 파일을 정적으로 처리해야하며 그 파일에 대한 전처리 작업을 수행하지 않으면이 exapmle이 보여주는 것처럼 'FileServer'를 사용하지 않는 것이 어떻습니까? http://golang.org/pkg/net/http/#example_FileServer –

답변

-1

@Not_a_Golfer가 명시된대로; 이 작업은 정적 파일 용으로 FileServer를 사용하여 수행 할 수 있습니다. 필자의 상황에서는 알 수없는 수많은 파일이 있기 때문에이 파일은 잘 작동합니다.

+0

golang 동적 함수에 대한 최고의 Google 결과이지만 원래 질문에 대답하지 않기 때문에이 답변은 아래로 내려졌습니다. – vicTROLLA