Я пытаюсь сделать следующее: у меня есть локальная база данных (с использованием PouchDB), я проверяю, вошел ли пользователь в систему (с помощью функции входа в систему с аутентификацией pouchdb) и, если true, я синхронизирую базу данных локали с удаленной.

К сожалению, когда я пытаюсь создать новую базу данных на CouchDB (мне нужна одна дБ для каждого пользователя), я всегда получаю сообщение об ошибке {«error»: «not_found», «reason»: «no_db_file»}. Я видел, что это распространенная ошибка, описанная в документации PouchDB ( https://pouchdb.com/guides/databases.html#remote-databases ), но CORS включен, и я не могу понять, в чем проблема.

Моя конфигурация couchdb: введите описание изображения здесь

Я делаю логин следующим образом:

var user = { name: 'name', password: 'password' }; var url = "http://ip/"; var pouchOpts = { skipSetup: true }; var ajaxOpts = { ajax: { headers: { Authorization: 'Basic '   window.btoa(user.name   ':'   user.password) } } }; var db = new PouchDB(url 'auth', pouchOpts); db.login(user.name, user.password, ajaxOpts).then(function() { return db.allDocs(); }).then(function(docs) { //HERE I TRY TO CREATE THE NEW DATABASE pouchDBService.sync(url "newDatabase", user); }).catch(function(error) { console.error(error); }); 

И в моем пакете DBService у меня есть:

 var database; //I call this function as app starts this.setDatabase = function(databaseName) { database = new PouchDB(databaseName, { adapter: 'websql' }); } this.sync = function(remoteDatabase, user) { var remoteDB = new PouchDB(remoteDatabase, { auth: { username: user.name, password: user.password }, skip_setup: true //without this I get the login popup! Why if I'm passing the auth params??? }); remoteDB.info().then(function (info) { console.log(info); database.sync(remoteDB, {live:true, retry: true}) }) } 

Что-то не так? Любая помощь приветствуется.

Благодарность

Чтобы создать базы данных на сервере CouchDB, вам нужно быть администратором. Для этого вы можете создать небольшой пользовательский API на сервере (например, с небольшим узлом http server) или использовать плагин couchperuser для CouchDB.