ArangoDB Foxx: require () вернул неопределенный - PullRequest
0 голосов
/ 19 января 2020

Я создал сервис Foxx ArangoDB и успешно смонтировал его на каком-либо маршруте с помощью Foxx CLI. У моего сервиса есть зависимость, которая использует randombytes. Когда я вызываю сервис, он возвращает ошибку о том, что `randomBytes не является функцией.

В целях тестирования я создал другой сервис и только что возвратил typeof require('randombytes'). И он вернул undefined.

Во время установки Foxx CLI меня ничего не предупреждал.

У кого-нибудь был такой опыт?

Ответы [ 2 ]

0 голосов
/ 23 января 2020

Я не думаю, что Foxx предупредит вас о недостающих зависимостях, но важно убедиться, что они включены в ваш пакет ZIP перед установкой вашей службы / приложения.

Мой проект организован следующим образом :

MyProject
   |-- foxx
       |-- service1
       |-- service2
       ...

У меня есть файл package.json в root проекта, а также в каждой из папок "service". Мой рабочий процесс (make) запускает npm install внутри каждой папки "service" перед созданием архива ZIP.

Просто убедитесь, что вы включили папку node_modules, и все должно быть счастливым.

0 голосов
/ 21 января 2020

Во-первых, вы определили свой модуль randombytes в своем пакете. json зависимости?

{
  "private": true,
  "dependencies": {
    "randombytes": "2.1.0"
  }
}

Тогда как насчет

let randombytes = require('randombytes');
console.log(randomBytes(16));

На самом деле я только что проверил ... и он также возвращает "undefined" ... так что не уверен, что это правильный модуль для aran go.

Лучше использовать криптографические методы go

https://www.arangodb.com/docs/stable/appendix-java-script-modules-crypto.html#genrandomnumbers

...