Ошибка при удаленной репликации базы данных IBM Cloudant. Я использую "pouchdb": "^ 7.2.1" в приложении Angular 8 с TypeScript. Самое странное, что иногда это работает, а иногда нет. Когда это не так, он говорит:
CustomPouchError {error: "bad_request", reason: "Please supply either IAM session cookie or basic auth not both", status: 400, name: "bad_request", message: "Please supply either IAM session cookie or basic auth not both", …}
error: "bad_request"
reason: "Please supply either IAM session cookie or basic auth not both"
status: 400
name: "bad_request"
...
Код, используемый для репликации из удаленной БД, прост:
private startReplication(localDB: PouchDB.Database, remoteDB: PouchDB.Database):Promise<PouchDB.Database> {
return new Promise((resolve, reject) => {
let replicationHandler = localDB.replicate
.from(remoteDB, {
batch_size: 200,
batches_limit: 10
})
.on("paused", info => {
replicationHandler.cancel()
})
.on("complete", info => {
replicationHandler.cancel()
resolve()
})
.on("error", err => {
replicationHandler.cancel()
reject(err)
})
})
}
Удаленная БД определяется следующим образом:
let userDB = "https://token:password@myurl.cloudant.com/mydatabase$username"
this.remoteDB = new PouchDB(`${userDB}`, {
auto_compaction: true
})