问题标签 [vibed]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
926 浏览

rest - dlang vibe.d RESTful 服务性能

谢谢您的帮助。

问题:
与手动创建请求处理程序相比,为什么我的 REST 服务在 dlang vibe.d 中使用 REST 接口的性能似乎如此糟糕?

更多信息:
我一直在使用 dlang 中的 vibe.d 库对 RESTful 服务进行原型设计。我正在运行一个测试,其中客户端将 GET 和 POST 请求发送到服务器,其有效负载为某个给定大小,例如 2048 字节(即 GET 响应将有 2k,POST 请求将有 2k)。

我正在使用vibe.d 库中的“ registerRestInterface”和“ ”API 来创建我的服务器和客户端,有点像这样......RestInterfaceClient

服务器:

客户:

我没有在我的界面中做任何花哨的事情。只需填充一个字节数组并传递它。我知道性能取决于许多不同的东西;但是,在 vibe.d 中使用 REST 接口时,我似乎看到了大约 160kB 的传输速率,而在使用像这样的手动 http 请求处理程序时,我看到了大约 5MB 的传输速率:

我真的很喜欢 REST 接口 API,但我不能为了使用它而遭受那种性能损失。关于为什么它看起来比其他方法慢得多的任何想法?也许我配置错误或遗漏了一些东西。我对 D 编程语言和 vibe.d 库有些陌生。

感谢您的时间!

0 投票
2 回答
128 浏览

d - D不区分大小写的关联数组?

可能吗?我正在使用 vibe.d 构建一个 REST Api 并实现令牌身份验证。因为我不知道用户将在哪种情况下向我发送 Authorization 标头参数,所以我需要以不区分大小写的方式查询它。例如:

可能吗..?

谢谢

0 投票
2 回答
502 浏览

mysql - 无法从 vibed 应用程序连接到 MySQL/MariaDB 数据库

如果我使用自定义 main (void main()而不是shared static this()),一切正常。

使用默认 main 我收到“访问冲突”错误。看起来 MySQL 不允许从 连接到它localhost,但在 my.ini 中我添加了字符串:

bind-address = 127.0.0.1

代码,如果有帮助:

我也运行下一个命令:

GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'password' WITH GRANT OPTION; FLUSH PRIVILEGES;

我也尝试了不同bind-address的方法:0.0.0.0localhost没有结果。每次新绑定后,我都重新启动了 MySQL 服务。

我正在使用这个驱动程序http://code.dlang.org/packages/ddbc

怎么了?

0 投票
1 回答
175 浏览

d - 从 vibe.d 同步执行 std.process 有时会静默挂起服务器

我为 编写了一个vibe.dweb-UI clang-format,当在使用 LLVM 样式时出现此输入时,服务器挂起。

处理 POST 的代码:

这可能不应该以阻塞的方式完成,但我不知道如何异步进行。我尝试将函数的内容包装在 中runTask,但我无法找到正确调用它的方法。

我怎样才能使它可靠?

0 投票
1 回答
151 浏览

d - 如何使用 vibed 检查互联网连接状态?

在应用程序启动之前,我需要检查 Internet 连接是否已启动。做这个的最好方式是什么?我正在使用振动。

我写了下一个代码:

但是,如果我在没有 Internet 连接的情况下运行它,我会收到错误:

0 投票
2 回答
446 浏览

mongodb - 使用 vibed 从 MongoDB 中进行简单选择

我正在学习如何从 vibed 使用 MongoDB。我写了一个简单的应用程序,我认为应该做查找操作。但是当我运行它时,我得到了错误:Querying uninitialized MongoCollection.。我做错了什么?

0 投票
1 回答
105 浏览

logging - 我应该什么时候使用 logInfo,什么时候使用 writeln?

Vibed 有 logInfo 类。如果我需要向控制台写入有关连接状态的信息,最好使用writeln什么logInfo

0 投票
0 回答
562 浏览

mongodb - 如何检查 D 中的 MongoDB 连接状态?

据我了解,文档 vibed 有 2 是 MongoDB 1 的 API。低级别 2。高级别

低级 API 具有连接属性,因此我可以连接到数据库并使用下一个代码检查连接是否成功:

但是所有示例都表明我需要使用带有connectMongoDB类的 Mongo 连接: auto db = connectMongoDB("localhost").getDatabase("test"); 但是这个类没有连接状态方法。

  1. 我可以从 MongoConnectionMongoClient类型返回并在我的代码中使用它吗?如果我正确理解所有其他方法都需要 MongoClient 来获得基本操作。
  2. 我可以检查与connectMongoDB班级的连接状态吗?
  3. 为什么try-catch阻止,没有用?即使我创建了不正确的连接字符串,我仍然无法收到任何错误消息。
0 投票
2 回答
2815 浏览

json - 如何将日期插入 ArangoDB?

我不明白什么格式使用 ArangoDB 进行日期存储。尝试以这种格式插入日期: {"name": "vasia", "date": date("2013-01-15")}

std.json.JSONException@C:\vibe-d-0.7.24\source\vibe\data\json.d(1116): (1): Error: Expected valid JSON token, got 'date("2013-0'.

看起来振动的 JSON 模块在这个字符串上失败了,但是什么格式使用 Arango?

格式{"name":"vasia","date":"2013-01-15"}中的字符串已成功插入 DB,但我不明白它是作为文本插入还是作为 Date 对象插入?

0 投票
1 回答
303 浏览

json - 如何将关联数组转换为键:值?

我需要转换关联数组,将它们放入 Json,但我不知道该怎么做。方法to!string添加不必要的斜线。

{"tags":"[\"Python\":1]"}

我需要得到:{"tags":{"Python":1}}

另外我正在考虑使用tuples,所以如果有任何解决方案,我想看看它。