Использование драйвера ArangoJS в веб-приложении Angular2
Я работаю над проектом, используя Angular2 и Typescript (v1.8.10). Мы хотим интегрировать данные из базы данных ArangoDB в веб-приложение. Я хотел бы использовать драйвер arangojs, если это возможно. Поскольку наборы для модуля arangojs еще не существуют (если они существуют, может кто-то указать мне на них?), Я пытаюсь использовать опцию компилятора allowJs tsc. Все проходит нормально, но systemjs не может загрузить модуль arangojs. Следующая строка в моем файле TS (вне определения любого класса):
let arangojs = require("arangojs");
переносит в:
var arangojs = require("arangojs");
Однако, когда я загружаю свое веб-приложение, эта команда require("arangojs") выдает следующую ошибку:
(index):48 Error: (SystemJS) SyntaxError: Unexpected token <
Любые советы или предложения относительно использования драйвера arangojs в веб-приложении Angular2 приветствуются.
Спасибо
Обновить
Я нашел ошибку, отмеченную выше. Ошибка произошла из-за опечатки в моем system.config.js. После исправления опечатки модуль не удалось загрузить из-за ошибок при загрузке зависимостей arangojs, таких как http, https, querystring и многих других. Я предполагаю, что загрузчик модулей, используемый за кулисами по требованию, несовместим с systemjs, используемыми Angular2. Я смог загрузить минимизированный драйвер Arangojs через
<script src="arangojs.min.js"></script>
а затем использовать
declare var arangojs : any
в моем файле машинописи. Я предпочел бы использовать arangojs изначально в среде машинописи. Кто-нибудь использовал драйвер arangojs в среде машинописи Angular2 (а не взлом, который я описал выше), и если да, то как вы заставили его работать?
Еще раз спасибо.
1 ответ
Поскольку вы пытаетесь использовать драйвер в браузере, вы должны использовать минимизированный пакет (который правильно использует веб-версию сетевой логики вместо версии Node.js.).
Пакет браузера использует оболочку UMD, поэтому должна быть возможность загрузить его с require
если вы можете настроить SystemJS для загрузки минимизированного пакета вместо модуля NPM.
В противном случае вы сможете загрузить модуль NPM, если сможете убедить загрузчик вашего модуля загрузить util/request.web.js
вместо util/request.js
, Пакет построен с использованием Webpack, который делает это автоматически.