Angular 2: Как использовать Nedb с веб-приложением?

Прямо сейчас в моем index.html мне нужно сделать

<script src="node_modules/nedb/browser-version/out/nedb.min.js"> </script>

<script>var nedb = new Nedb({filename: 'someFile2', autoload: true});
</script>

Это загружает постоянную базу данных nedb "someFile2" в indexeddb в браузере Google Chrome.

Как мне загрузить NEDB через основной компонент или модуль приложения? Я хочу иметь возможность создать базу данных NEDB через код приложения.

Я использую Systemjs с угловым 2.

2 ответа

Недавно я потратил некоторое время на импорт NeDB в проект Angular2 + Electron. В конце концов я смог это сделать, и вот как я это сделал. Я надеюсь, что это будет достаточно близко, чтобы сделать это в неэлектронном проекте.

Во-первых, убедитесь, что оба nedb а также @types/nedb установлены:

npm install -S nedb
npm install -S @types/nedb

Вы должны указать SystemJS, где найти NEDB. Для этого добавьте следующую строку к объекту карты в systemjs.config.js (предполагается, что вы указали путь 'npm' в объекте 'paths'):

'nedb': 'npm:nedb/browser-version/out/nedb.min.js'

Импортировать Datastore модуль в вашем Angular 2 файле:

import * as Datastore from 'nedb';

Теперь вы сможете создать новый экземпляр Datastore в своем коде, например:

constructor() {
  let db = new Datastore();
  db.loadDatabase(function() {
    // ...
  });
}

Надеюсь, это поможет.

В дополнение к ответу Альберто Вентурини.

Для проекта Angular2 + Electron с использованием Angular2 CLI

Добавить путь к NeDB в .angular-cli.json в вашей корневой папке, чтобы сказать, где найти NeDB,

"scripts": [
        "../node_modules/nedb/browser-version/out/nedb.min.js"
]
Другие вопросы по тегам