- 版本:1.0.18
- GitHub: https://github.com/couchbaselabs/nativescript-couchbase
- NPM: https://npmjs.net.cn/package/nativescript-couchbase
- 下载
- 昨天:0
- 上周:4
- 上个月:32
Couchbase Lite 插件用于 Telerik NativeScript
Couchbase Lite 是移动设备的 NoSQL 内嵌数据库。它是 SQLite 和 Core Data 等常用数据库技术的替代品。
配置
要将此插件添加到您的 Angular 或纯 JavaScript NativeScript 项目中,请在终端或命令提示符中执行以下操作
tns plugin add nativescript-couchbase
如果您想尝试此项目捆绑的任何演示应用程序,请在克隆存储库后执行以下操作
npm install
npm run deploy-android-angular
对于第三行,选项列表如下
npm run deploy-android-angular
npm run deploy-android-vanilla
npm run deploy-ios-angular
npm run deploy-ios-vanilla
如果您正在使用 TypeScript 并且希望使用此插件的类型定义,请将以下行添加到项目中的 references.d.ts 文件
/// <reference path="./node_modules/nativescript-couchbase/couchbase.d.ts" />
如果不包含以上行,您的 TypeScript 编译器可能在构建过程中抛出错误。
用法
在您的项目中包含插件
var couchbaseModule = require("nativescript-couchbase");
创建或打开现有数据库
var database = new couchbaseModule.Couchbase("test-database");
使用 CRUD 操作管理数据
创建新文档
var documentId = database.createDocument({
"firstname": "Nic",
"lastname": "Raboy",
"address": {
"city": "San Francisco",
"state": "CA",
"country": "USA"
}
"twitter": "https://www.twitter.com/nraboy"
});
检索现有文档
var person = database.getDocument(documentId);
更新现有文档
database.updateDocument(documentId, {
"firstname": "Nicolas",
"lastname": "Raboy",
"twitter": "https://www.twitter.com/nraboy"
});
删除文档
var isDeleted = database.deleteDocument(documentId);
使用 MapReduce 视图进行查询
知道文档 ID 并非总是可行的。因此,可以使用在视图中定义的准则查询多个文档。
创建 MapReduce 视图
MapReduce 视图将产生一个键值对。可以在 emitter 周围放置逻辑,使视图更具体。
database.createView("people", "1", function(document, emitter) {
emitter.emit(document._id, document);
});
查询 MapReduce 视图
var rows = database.executeQuery("people");
for(var i = 0; i < rows.length; i++) {
personList.push(rows[i]);
}
与 Couchbase Sync Gateway 和 Couchbase Server 同步
Couchbase Lite 可以与 Couchbase Sync Gateway 一起工作,在设备与平台之间提供同步支持。如果目标是仅用于离线目的,则不需要 Couchbase Sync Gateway 来使用 Couchbase Lite。
Couchbase Sync Gateway 可以在移动部分中的 Couchbase 下载门户 下载。
在 demo 目录中包含 Sync Gateway 的示例配置文件。您可以从命令提示符或终端执行以下操作来启动它
/path/to/sync/gateway/bin/sync_gateway /path/to/demo/sync-gateway-config.json
在示例配置文件中,不使用 Couchbase Server,而是使用一个内存数据库进行原型设计。您可以通过浏览器中的 https://127.0.0.1:4985/_admin/ 访问它。
要在本机设备和服务器之间进行复制,必须在您的项目中添加以下内容
var couchbaseModule = require("nativescript-couchbase");
database = new couchbaseModule.Couchbase("test-database");
var push = database.createPushReplication("http://sync-gateway-host:4984/test-database");
var pull = database.createPullReplication("http://sync-gateway-host:4984/test-database");
push.setContinuous(true);
pull.setContinuous(true);
push.start();
pull.start();
数据现在将连续在本机设备和 Sync Gateway 之间进行复制。
监听更改
database.addDatabaseChangeListener(function(changes) {
for(var i = 0; i < changes.length; i++) {
console.log(changes[i].getDocumentId());
}
});
插件开发
Couchbase NativeScript 插件正在积极开发中。底层 Couchbase Android 和 Couchbase iOS SDK 的 API 更改不频繁,因此 NativeScript 的 JavaScript 包装器中的更改也不频繁。
如果您觉得缺少某些功能或发现了错误,请提交一个工单以便纠正,或者提交一个拉取请求,以获得您的贡献认可。