php 편집기 Baicao가 문제를 소개합니다. Golang 라이브러리는 컨트롤러에 nil 이외의 어떤 것도 반환할 수 없습니다. Golang 개발에서 컨트롤러는 요청을 처리하는 핵심 구성 요소이지만 때로는 nil이 아닌 콘텐츠를 반환하지 못하는 문제가 발생할 수 있습니다. 이로 인해 일부 기능이 제대로 작동하지 않을 수 있습니다. 다행히도 이 문제를 해결하고 라이브러리가 필요한 것을 반환하도록 보장하기 위해 취할 수 있는 몇 가지 솔루션이 있습니다. 이 문서에서는 이 문제를 해결하는 데 도움이 되는 몇 가지 일반적인 솔루션을 살펴보겠습니다.
저는 여기 골랑 꼬마라서 분명한 것을 놓치고 있는 것 같습니다. 며칠 동안 노력한 끝에 도움을 받기로 결정했습니다. :-)
내가 게시한 코드는 사용자가 새 클라이언트 인증서/키백(openvpn 서버 관리 webui) 생성을 요청하고 동일한 이름의 클라이언트가 이미 존재하는 경우를 제외하고는 작동합니다. 이 경우에도 새 클라이언트 패키지가 생성되지 않지만 새 클라이언트 패키지가 생성되었음을 알리는 잘못된 경고 메시지가 표시됩니다.
이름 존재 여부에 따라 다른 경고 배너를 표시하려면 컨트롤러를 다시 디자인해야 한다는 것을 알고 있습니다. 그러나 나는 라이브러리에서 "nil" 이외의 항목을 검색하는 데 갇혀 있었습니다.
golang 컨트롤러 코드는 다음과 같습니다.
으아악그리고 lib.createcertificate를 통해 호출되는 라이브러리 함수:
으아악라이브러리의 모든 반환을 err로 변경하고 컨트롤러의 두 번째 "else" 문에 fmt.println(err)을 삽입했지만 얻은 것은 nil뿐입니다.
그래서 저는 이 문제를 해결하는 방법을 알아낼 수 있었습니다. 좀 더 인터넷 검색을 해보니 적어도 내가 달성하려는 목표에 근접한 게시물을 찾았습니다. 결국 인증서 저장소에 3줄만 추가/변경하면 되었습니다. "오류" 라이브러리를 newerror :=errors.new("error! there is already a valid or invalidcertificate for that name")
的形式添加自定义错误,并仅更改最后一个返回 return newerror
로 가져와야 합니다. Go가 오류를 처리하는 방법에 대해 한두 가지 배웠습니다!
다음은 인증서 저장소에 대한 업데이트된 코드입니다.
으아악이제 이미 존재하는 이름으로 openvpn 클라이언트를 추가하려고 하면:
위 내용은 Golang 라이브러리가 컨트롤러에 nil 이외의 것을 반환하도록 할 수 없습니다.의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!