ArangoDB福克斯公司:require()返回的值未定义

ifmq2ha2  于 2022-12-09  发布在  Go
关注(0)|答案(2)|浏览(132)

我创建了一个ArangoDB Foxx服务,并使用Foxx CLI成功地将其安装在某个路由上。我的服务有一个依赖项,它使用randombytes。当我调用该服务时,它返回一个错误,说'randomBytes不是一个函数。
出于测试的目的,我创建了另一个服务,并返回了typeof require('randombytes')
在安装Foxx CLI没有警告我任何东西。
有人有过这样的经历吗?

k75qkfdt

k75qkfdt1#

首先,是否在package.json依赖项中定义了randombytes模块?

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

那怎么办

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

实际上,我刚刚测试了...它也返回了“undefined”...所以不确定它是否是arango的有效模块。
最好用arango的加密方法
https://www.arangodb.com/docs/stable/appendix-java-script-modules-crypto.html#genrandomnumbers

bq3bfh9z

bq3bfh9z2#

我不认为Foxx会提醒你缺少依赖项,但在安装服务/应用程序之前,确保它们包含在ZIP包中是很重要的。
我的项目是这样组织的:

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

我在项目的根目录以及每个“service”文件夹中都有一个package.json文件,我的工作流(make)在创建ZIP存档之前会在每个“service”文件夹中运行npm install
只要确保包括node_modules文件夹,所有人都应该很高兴。

相关问题