Я начал с чтения сообщения Josh Morony, который действительно помог! (спасибо, Джош, отличный пост!). Моя настройка была для облачного, хотя для couchdb она должна быть одинаковой.
Позвольте мне подвести итог тому, что я сделал для моей настройки ванильной угловой 2, не стесняйтесь обращаться к сообщению Джоша также для подробного описания нижеприведенных пунктов. Я предполагаю, что у вас уже есть облачная учетная запись и созданная база данных (если нет, вы можете начать там).
npm install pouchdb --save
npm install -g typings
typings install --global --save dt~pouchdb dt~pouchdb-adapter-websql dt~pouchdb-browser dt~pouchdb-core dt~pouchdb-http dt~pouchdb-mapreduce dt~pouchdb-node dt~pouchdb-replication
Примечание: при Cloudant убедитесь, что вы включите CORS для вашего API базы данных.
После установки всего вышеперечисленного, мы должны изменить несколько файлов (смотрите ниже):
угловой cli.json - изменить свои «пакеты» массив, чтобы отразить следующее :
"packages": [
{
"PouchDB": {
"main": "pouchdb.js",
"defaultExtension": "js"
}
}]
Создать новую "услугу", например "DATASERVICE" (я использовал angular-cli
), вы можете скопировать пасту. Они здесь являются «require(pouchdb)
» и, таким образом, делают его доступным для ваших других компонентов посредством импорта.
import { Injectable } from '@angular/core';
var PouchDB = require('pouchdb');
@Injectable()
export class DataService {
db: any;
username: any;
password: any;
remote: any;
data: any;
constructor() {
this.db = new PouchDB('YOUR_DATABASE');
this.username = 'DATABASE_KEY';
this.password = 'YOUR_PASSWORD';
this.remote = 'https://YOU_ACCOUNT_NAME.cloudant.com/YOUR_DATABASE';
let options = {
live: true,
retry: true,
continuous: true,
auth: {
username: this.username,
password: this.password
}
};
this.db.sync(this.remote, options);
}
// other CRUD functions below...
}
app.module.ts
- импортировать ваш новый "DataService
" и добавить его в "providers
".
Теперь вы готовы начать играть. Например, под компонентом домашней страницы импортируйте «DataService» и начните вызывать функции CRUD, например. getDocuments, AddDocument и т.д ..
Примечание: если вы собираетесь тестировать свой API с помощью почтальона (например), убедитесь, что вы вводите свой Cloudant/CouchDB логин/пароль в разделе «Авторизация». В противном случае вы столкнетесь с ошибками чтения.
Demo приложение: https://github.com/rrubio/Angular2PouchDdCloudant
Не кажется ли вам, что магазин базы данных учетных данных в TS файлы не являются безопасными? –
Правильно! если вы ищете внешнее приложение, вам понадобится нечто вроде expressjs в середине. –