对于Foxx Microservices的“入门”部分,使用ArangoDB文档version 3.3或version 3.4,我将无法克服以下错误:
HKey
该错误显示在服务的“ API”选项卡上。根据教程安装我的服务后,我将获得所描述的服务卡。我单击该卡,然后单击“ API”选项卡,并显示以上错误。
为消除错别字,我尝试从ArangoDB文档中复制并粘贴确切的文件内容,并严格按照每个步骤进行操作,但仍然出现相同的错误。
我新创建的Failed to load API definition.
NetworkError when attempting to fetch resource. http://192.168.1.1:8529/_db/_system/_admin/aardvark/foxxes/docs/swagger.json?mount=/getting-started
服务的“信息”标签包含以下信息:
作者:
挂载:/ getting-started
模式:开发
版本:未知
版本许可证:未知许可证
路径:/ var / lib / arangodb3-apps / _db / _system /入门/ APP
该示例仅包含两个文件,它们是:
manifest.json
getting-started
index.js
{
"engines": {
"arangodb": "^3.0.0"
},
"main": "index.js"
}
罐装演示服务(例如hello-fox示例)可以正常工作。我收集了更多错误信息:
导航到'use strict';
const createRouter = require('@arangodb/foxx/router');
const router = createRouter();
module.context.use(router);
router.get('/hello-world', function (req, res) {
res.send('Hello World!');
})
.response(['text/plain'], 'A generic greeting.')
.summary('Generic greeting')
.description('Prints a generic greeting.');
404:errorMessage“未知路径'/ getting-started'”
导航到http://192.168.1.1:8529/getting-started
404:errorMessage“未知路径'/ getting-started'”
控制台还显示:
http://192.168.1.1:8529/_db/_system/getting-started
本教程没有指出另一个名为WARNING File not found "/getting-started": file "" does not exist in "/var/lib/arangodb3-apps/_db/_system/getting-started/APP/files".
的文件或两个指定文件的其他位置。我想念什么?
答案 0 :(得分:0)
此问题已根据@ camba1的有用评论得到解决。 Arango没问题,我理解本教程只是一个问题。对于我所处位置的其他人来说,这是我没有正确理解的事情,这些事情在解决后可以解决我的问题。
“ API”选项卡与本教程相反,即使服务正常运行,也会出现错误“无法加载API定义”。忽略该错误信息。我还没有使用API标签。
本教程涉及两个路径,“ / hello-world”和“ / getting-started”。这些用于端点(URI)和创建路由器,如下所示:
router.get('/hello-world', function (req, res) { ...
到目前为止,本教程还不够清晰,但是正如@ camba1指出的那样,服务端点最终将合并这两个元素:
192.168.1.1:8529/_db/_system/getting-started/hello-world .
在我看来,创建没有路径的路由器时,这个非常基本的演示会变得更加容易和更好:
router.get(function (req, res) {
在这种情况下,其默认路径为'/'。我认为这可以避免让像我这样的初学者感到困惑。然后,服务端点将变得更简单。就我而言,端点(Arango在局域网上的另一台计算机上运行)变为:
192.168.1.1:8529/_db/_system/getting-started
如果本教程增加了一些额外的句子来说明端点的构造方式,或者按照我上面的建议做了,并且一步一步简化了事情,则本教程将得到改进。