Я пытаюсь сохранить некоторые данные в своем локальном экземпляре MongoDB, используя Go, скомпилированный в WebAssembly.Проблема в том, что я даже не могу подключиться к нему.Экземпляр mondog никак не реагирует на соединение с модулем wasm.Эта проблема возникает только при подключении из модуля wasm.Тот же код при обычной компиляции работает нормально, как и соединение из оболочки mongo.Запущенный экземпляр mongod не защищен паролем.
В случае, если это имеет значение, моя ОС - Windows 10.
Я попытался изменить параметр mongod bind_ip с localhost на фактический локальный адрес моей машины.и использовать разные браузеры (Chrome 75.0.3770.80, Opera 60.0.3255.109).Изменение длительности тайм-аута также не помогает.
func connectToMongo(URI string, timeout time.Duration) *mongo.Client {
ctx, cancel := context.WithTimeout(context.Background(), timeout)
defer cancel()
client, err := mongo.Connect(ctx, options.Client().ApplyURI(URI))
if err != nil {
log.Fatal(err)
}
err = client.Ping(ctx, readpref.Primary())
if err != nil {
log.Fatal(err) // It fails here
}
return client
}
func main() {
client := connectToMongo("mongodb://localhost:27017", 20*time.Second)
}
<html>
<head>
<script type="text/javascript" src="./wasm_exec.js"></script>
<script>
const go = new Go();
WebAssembly.instantiateStreaming(fetch('main.wasm'),go.importObject).then( res=> {
go.run(res.instance)
})
</script>
</head>
</html>
Я запускаю mongod.exe без каких-либо параметров, поэтому он привязан к localhost.
Я ожидал, что мой кодподключиться к экземпляру mongod, но на самом деле я получаю следующую ошибку в консоли браузера: «превышен крайний срок контекста».
Я все еще изучаю Go и новичка в JavaScript, так что я могу упустить что-то очень простое.Любая помощь будет принята с благодарностью.