Hello everyone:)noob here
为什么我从mongodb驱动程序的Connect()
函数得到这个错误消息
我有这个代码:
// this Println() works fine
fmt.Println(os.Getenv(MONGO_URI_ENV_VAR))
client, err := mongo.Connect( // this is where it's erroring out
context.TODO(),
options.Client().ApplyURI(os.Getenv(MONGO_URI_ENV_VAR)),
)
if err != nil {
log.Fatalf("mongo.Connect(): %s\n", err)
}
字符串
我从env var fine中获得API键的printline,但mongo.Connect()
函数出错,说:
2023/07/22 21:47:25 mongo.Connect(): error parsing uri: scheme must be "mongodb" or "mongodb+srv"
型
URL看起来像这样顺便说一句:
"mongodb+srv://<username>:<password>@<project-name>.mongodb.net/?retryWrites=true&w=majority"
型
附加信息:当我只传递一个普通的字符串而不是获取envar的值并将其传递到ApplyURI()
方法时,它可以工作。但我不想把它交给回收公司
2条答案
按热度按时间svdrlsy41#
我发现了,我通过shell向env var传递单引号,我认为这是你应该做的,因为shell会像这样解析保留字符:
字符串
但显然单引号不应该在这里
kknvjkwl2#
你需要在main.go文件中调用env load函数,并在main.go中添加mongoDB函数,这样就可以工作了。
字符串