当前位置: 首页 > 知识库问答 >
问题:

Phonegap/Cordova和Couchbase Mobile/服务器

红经亘
2023-03-14

我正在使用phonegap创建我的移动应用程序。

我决定使用Couchbase来存储数据;但我不知道我是否必须使用Couchbase移动设备,或者我可以将我的应用程序(javascript)直接与Couchbase服务器连接,以及如何“查询”我的. net应用程序。

我已经在我的系统上下载了couchbase服务器,但如何将其与我的应用程序连接?

我可以使用N1QL“查询”服务器吗。NET也使用phonegap?(因为couchbase mobile不支持n1ql)。

我可以只调用使用. NET或JAVA完成的rest Web服务,但是否需要将Couchbase mobile添加到应用程序中?

这是C#Couchbase移动留档的查询:

    var document = database.CreateDocument();
var properties = new Dictionary<string, object>()
    {
        {"type", "list"},
        {"title", "title"},
        {"created_at", DateTime.UtcNow.ToString ("o")},
        {"owner", "profile:" + userId},
        {"members", new List<string>()}
    };
var rev = document.PutProperties(properties);
Debug.Assert(rev != null);

我怎么称呼它?

这是服务器文档中的查询(前一个是在mobile中):

var doc = new Document<dynamic>{ Id = "document_id", Content = new {Some="value"} };
var result = bucket.Insert(doc);
Console.WriteLine(JsonConvert.SerializeObject(result.Document));

为什么它们不同?

这是将服务器连接到phonegap的功能:

var DB_NAME = 'todo';

function initRESTClient(url) {
  var client = new SwaggerClient({
    spec: window.spec,
    usePromise: true,
  })
    .then(function (client) {
      client.setHost(url);
      if (device.platform == 'android') {
        var encodedCredentials = "Basic " + window.btoa(url.split('/')[1].split('@')[0]);
        client.clientAuthorizations.add("auth", new SwaggerClient.ApiKeyAuthorization('Authorization', encodedCredentials, 'header'));
      }
      client.server.get_all_dbs()
        .then(function (res) {
          var dbs = res.obj;
          if (dbs.indexOf(DB_NAME) == -1) {
            return client.database.put_db({db: DB_NAME});
          }
          return client.database.get_db({db: DB_NAME});
        })
        .then(function (res) {
          return client.document.post({db: DB_NAME, body: {title: 'Couchbase Mobile', sdk: 'PhoneGap'}});
        })
        .then(function (res) {
          console.log('Document ID :: ' + res.obj.id);
        })
        .catch(function (err) {
          console.log(err);
        });
    });

}

抱歉,如果我有点困惑,但我需要一些高层次的澄清,以开始编码。

共有2个答案

倪振海
2023-03-14

关于你的问题,为什么。Net版本的移动和服务器查询不同-

>

  • Mobile版本调用Couchbase Lite,它是用于移动客户端平台的嵌入式非关系型数据库。该数据库嵌入在您的移动/桌面客户端中,并通过同步网关定期与云中的Couchbase Server同步。因此,您通常会在Windows移动应用程序中实现这一点。您也可以在桌面客户端应用程序中实现这一点。

    服务器版本-在这种情况下,您将使用. Net SDK对Couchbase服务器进行查询。您可以在后端的. Net Web服务应用程序中实现这一点。您可以用任何受支持的语言实现后端Web服务,包括Java。

    如果您正在考虑Phonegap,您可能需要参考本教程。这使用swagger客户端与Couchbase Lite集成-没有原生JS API,因此使用基于swagger的客户端。Couchbase Lite通过同步网关与Couchbase服务器同步。

  • 狄珂
    2023-03-14

    高级:您需要设备上的Couchbase mobile和服务器上的Couchbase Server(云端或本地)。要在移动设备和服务器之间推送/拉取数据,您需要运行Couchbase同步网关(云端或本地)。更多信息可在Couchbase Mobile Portal for Developers获得。

     类似资料:
    • 我在使用cordova并将其应用于Phonegap构建。虽然PGB告诉我我使用的是一个旧版本,但它还是起作用了——我无法更改那里的设置。 我已经升级到科尔多瓦4现在,一个版本的PGB显然不支持。 那么,它们有不同的生命周期?它们是否使用相同的版本号?如果要使用phonegap构建,是否应该停止使用cordova并开始使用phonegap cli?

    • 比如说,Phonegap的大多数演练都指示初学者同时安装Phonegap和Cordova。下载和安装phonegap和cordova有什么意义?既然phonegap是cordova的发行版,为什么不下载并安装其中一个呢?

    • 问题内容: 我正在尝试在Java Server上上传图像。文件正在从android设备传输,但在server上保存了null。 这是服务器代码 这是我的电话间隙代码 04-14 19:33:46.0​​10:E / FileTransfer(13550):java.io.FileNotFoundException:http:/// jeeyoh / mobile / userService / f

    • 问题内容: 更新1: 这就是我最后所做的一切: 那不是必需的吗? 原始问题: 在我的Ubuntu 12.04计算机上,我刚刚使用npm和cordova安装了node.js: 当我尝试添加android时: 我得到以下输出: 有人知道为什么会发生这种情况以及如何解决吗? 我在PhoneGap上遇到了同样的问题。 问题答案: Android工具二进制文件可能不在您的路径中。 根据PhoneGap文档(

    • 我在启动和运行phonegap windows phone应用程序时遇到问题。(PhoneGap 3.1.0-在windows 8计算机上) 我已经按照步骤操作,因此从“Windows Phone命令行工具”创建了一个Windows Phone应用程序。它说使用CordovaWP7xxx.zipCordovaWP8xxx.zip创建一个模板,您可以从中创建一个应用程序。在最新的3.1.0版本的电话

    • phonegap/cordova的文档非常糟糕。我只想在Windows环境中安装PhoneGap 3.0,但没有成功。 下面是我的步骤和失败点。有人能就解决方案提出建议吗? 根据说明: 安装Node.js(成功) 从nodes.js:(SUCCESSFUL) 添加平台:(什么都没发生) 尝试phonegap:(找不到ERROR项目目录) 来自“Windows Phone 8平台指南” 安装Wind