> 백엔드 개발 > Golang > Golang 라이브러리가 컨트롤러에 nil 이외의 것을 반환하도록 할 수 없습니다.

Golang 라이브러리가 컨트롤러에 nil 이외의 것을 반환하도록 할 수 없습니다.

王林
풀어 주다: 2024-02-11 15:45:09
앞으로
782명이 탐색했습니다.

无法让 Golang 库向控制器返回除 nil 之外的任何内容

php 편집기 Baicao가 문제를 소개합니다. Golang 라이브러리는 컨트롤러에 nil 이외의 어떤 것도 반환할 수 없습니다. Golang 개발에서 컨트롤러는 요청을 처리하는 핵심 구성 요소이지만 때로는 nil이 아닌 콘텐츠를 반환하지 못하는 문제가 발생할 수 있습니다. 이로 인해 일부 기능이 제대로 작동하지 않을 수 있습니다. 다행히도 이 문제를 해결하고 라이브러리가 필요한 것을 반환하도록 보장하기 위해 취할 수 있는 몇 가지 솔루션이 있습니다. 이 문서에서는 이 문제를 해결하는 데 도움이 되는 몇 가지 일반적인 솔루션을 살펴보겠습니다.

질문 내용

저는 여기 골랑 꼬마라서 분명한 것을 놓치고 있는 것 같습니다. 며칠 동안 노력한 끝에 도움을 받기로 결정했습니다. :-)

내가 게시한 코드는 사용자가 새 클라이언트 인증서/키백(openvpn 서버 관리 webui) 생성을 요청하고 동일한 이름의 클라이언트가 이미 존재하는 경우를 제외하고는 작동합니다. 이 경우에도 새 클라이언트 패키지가 생성되지 않지만 새 클라이언트 패키지가 생성되었음을 알리는 잘못된 경고 메시지가 표시됩니다.

이름 존재 여부에 따라 다른 경고 배너를 표시하려면 컨트롤러를 다시 디자인해야 한다는 것을 알고 있습니다. 그러나 나는 라이브러리에서 "nil" 이외의 항목을 검색하는 데 갇혀 있었습니다.

golang 컨트롤러 코드는 다음과 같습니다.

으아악

그리고 lib.createcertificate를 통해 호출되는 라이브러리 함수:

으아악

라이브러리의 모든 반환을 err로 변경하고 컨트롤러의 두 번째 "else" 문에 fmt.println(err)을 삽입했지만 얻은 것은 nil뿐입니다.

Solution

그래서 저는 이 문제를 해결하는 방법을 알아낼 수 있었습니다. 좀 더 인터넷 검색을 해보니 적어도 내가 달성하려는 목표에 근접한 게시물을 찾았습니다. 결국 인증서 저장소에 3줄만 추가/변경하면 되었습니다. "오류" 라이브러리를 newerror :=errors.new("error! there is already a valid or invalidcertificate for that name") 的形式添加自定义错误,并仅更改最后一个返回 return newerror로 가져와야 합니다. Go가 오류를 처리하는 방법에 대해 한두 가지 배웠습니다!

다음은 인증서 저장소에 대한 업데이트된 코드입니다.

으아악

이제 이미 존재하는 이름으로 openvpn 클라이언트를 추가하려고 하면:

위 내용은 Golang 라이브러리가 컨트롤러에 nil 이외의 것을 반환하도록 할 수 없습니다.의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

관련 라벨:
원천:stackoverflow.com
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
최신 이슈
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿