Ajax 数据库对CouchDB进行查询

Ajax 数据库对CouchDB进行查询,ajax,couchdb,pouchdb,Ajax,Couchdb,Pouchdb,我用PhoneGap和JQM开发了一个应用程序。我还将在设备端使用PockDB作为数据库,在服务器端使用CouchDB作为数据库 我想知道是否可以使用PockDB向CouchDB发送查询。例如,我想要一个登录机制。所以我需要检查服务器端的凭据。我的第一个想法是向PHP文件发送ajax请求,该文件将检查CouchDB数据库中的凭据。 对于注册我也会这样做:通过Ajax将数据发送到PHP,在我的服务器数据库中创建一个新记录 然而,由于PockDB和CouchDB非常接近,也许可以不使用ajax查询和

我用PhoneGap和JQM开发了一个应用程序。我还将在设备端使用PockDB作为数据库,在服务器端使用CouchDB作为数据库

我想知道是否可以使用PockDB向CouchDB发送查询。例如,我想要一个登录机制。所以我需要检查服务器端的凭据。我的第一个想法是向PHP文件发送ajax请求,该文件将检查CouchDB数据库中的凭据。 对于注册我也会这样做:通过Ajax将数据发送到PHP,在我的服务器数据库中创建一个新记录

然而,由于PockDB和CouchDB非常接近,也许可以不使用ajax查询和PHP文件来实现。也许可以从数据库向CouchDB发送查询(读写)。 可能吗


谢谢。

您可以使用PockDB作为CouchDb驱动程序

var db = new PouchDB('https://myserver:5984/mdb');
// this gives you the PouchDB API but it will request data from the CouchDb Server
有一个PockDB插件为PockDB api提供了一些身份验证方法:

var db = new PouchDB('http://mysite:5984/mydb');
db.login('batman', 'brucewayne').then(function (batman) {
  console.log("I'm Batman.");
  return db.logout();
});
以下是它混合使用的方法:

  • 报名
  • 登录
  • 注销
  • getSession
  • getUser
为了防止旧时代的浏览器HTTP基本身份验证模式对话框,我们必须在使用数据库的方式上保持谨慎。为了防止rouge未经验证的对CouchDB的请求(用于检查远程DB是否存在),请在Pocket的构造函数选项中传递skipSetup:true。其次,要根据_会话对请求进行身份验证,请将HTTP基本授权头添加到db.login()的AJAX选项中

var user = {
  name: 'admin',
  password: 'admin'
};

var pouchOpts = {
  skipSetup: true
};

var ajaxOpts = {
  ajax: {
    headers: {
      Authorization: 'Basic ' + window.btoa(user.name + ':' + user.password)
    }
  }
};

var db = new PouchDB('http://localhost:5984/test', pouchOpts);

db.login(user.name, user.password, ajaxOpts).then(function() {
  return db.allDocs();
}).then(function(docs) {
  console.log(docs);
}).catch(function(error) {
  console.error(error);
});