问题标签 [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.
web - 如何使用 web 框架在 vibe.d 中上传文件
我还是 Vibe.d 的新手,所以如果我遗漏了一些明显的东西,请原谅我。
我想使用 Web 框架在 Vibe.d 中上传文件。但是,我发现的所有示例,包括“D Web 开发”一书中的示例,都没有使用 Web 框架。如果我将非网络框架示例插入我的应用程序,它会崩溃。如果我不得不为了一个功能而放弃 Web 框架,那就是文件上传。
Vibe.d 文档是一项很好的工作,我对此表示赞赏,但直到现在它还相当稀少,而且示例很少而且相差甚远。
以下是我的一些代码片段:
我仍然可以使用 Web 框架访问 HTTPServerRequest.files 吗?如何?还是我还需要它?意思是,有没有不使用 HTTPServerRequest.files 的另一种方法?
非常感谢!
d - 在 Vibe.data.json.Json 上使用 Typedef 创建新类型,隐式转换错误
我需要有多种类型的 Json,所以我使用Typedef
如下:
我正在使用 Vibe.d Json 版本,编译使用时收到以下消息DMD64 D Compiler v2.072.0
:
我阅读了文档并没有发现使用Typedef
.
database-connection - 数据库连接模式
我用mysql-native
. 该驱动程序是 supportvibed
的连接池。在 dlang 新闻组mysql-native
开发人员 Nick Sabalausky 上写道:
“如果您使用的是连接池,则无需担心关闭连接。关键是连接保持打开状态,直到您需要再次使用。当您的程序结束时,连接将自行关闭。”
“您创建一次池(无论何时/何时)。然后,每次您想使用数据库时,您都可以通过调用 MySqlPool.lockConnection 来获得连接。”
“调用‘close’总是会关闭连接。如果你从池中获得了连接,那么当你不再使用它时,它会自动返回池中。不需要为此做任何特别的事情。”
关于池应该如何做的问题?我已经阅读了关于单例模式的信息,并且无法理解是这种情况。
我写了下一个代码:
用户类/结构:
我不明白什么是访问connection
实例的正确方法的问题。在结构中创建每个新的数据库连接类似乎是非常愚蠢的想法users
。但是如何以更好的方式做到这一点?使Connection connection
全球化?好吗?还是有更正确的方法?
database - 使用 mysql-native 驱动程序连接到数据库后出现异常
我想创造功能。第一个是连接到数据库,如果第一个失败,第二个是完全重新连接。
在我的实验中,我在开始时关闭数据库以使connect
块失败并调用重新连接块。之后我打开数据库,并期待连接块会成功,但我得到了异常。
这是我的代码:
日志(几秒钟后打开数据库):
我不明白为什么我在之后得到异常:Reconnection to DB server done
d - 用户应该是结构的类还是数组?
我不明白我是否以正确的方式编写代码。我有振动应用程序。
main里面的代码:
用户等级:
类的实例将存在多长时间?例如,有 3 个用户访问我的站点:David、Jow、Mike,因此getUserByName
会被调用 3 次。
这是否意味着每个新的日志记录用户类字段都会在我的代码中被覆盖login
?password
似乎是的。但是这样好吗?或者我会有这样的问题:
例如,如果类实例中的字段将被初始化David
,然后第二个用户将登录并且字段将被更改Jow
?
我决定检查一下我的想法。并做到了:
并在main
:
但我得到的很奇怪:
但我希望在调用 (second):
user.getUserByName("Jow");
之后sleep
我会得到类似的东西:
而且我不明白为什么...
据我了解,另一个变体是将用户作为结构并为每个用户创建新的结构副本。好吗?或者也许有另一个更好的解决方案?
rest - registerWebInterface 和 registerRestInterface 和 RestInterfaceClient 有什么区别?
我无法通过文档了解registerRestInterface、registerWebInterface和RestInterfaceClient之间的区别。
它们都可以按类生成方法。但我不明白什么时候应该使用一个,什么时候使用另一个。
ssl - Vibe.d 上的 HTTPS
在我的 linode 盒子上,我安装了 Let's Encrypt SSL 证书并创建了一个简单的 Vibe.d 应用程序来测试我的 SSL 连接。我总是超时。这是代码:
如果我只是访问
我可以很好地查看它们。
但如果我访问https://findyourtutor.info
,我会超时。
我也超时
在 linode 登录时,我可以做
并且 lynx 会警告我有关证书的信息,但按两次“y”后我可以看到该站点。
我也可以
但不是
在这一点上,我不知道是我的代码有问题还是我的设置有问题。
我的 UFW 防火墙允许来自任何地方的 HTTPS。
d - Is there a way to run a task each day at a 8:00 AM in vibed?
I'm trying to run a task each day at 8:00 AM in a vibe.d web app.
For the moment, I use the setTimer
function with the periodic parameter to true
. But this way, I can't control exactly the hour at which the task will be triggered. Is there an easy way to do this in vibed ?
d - 访问范围外的类方法实例的正确方法是什么?
我有以下代码:
我需要创建router.get("*", &myStuff);
来处理与任何 REST 实例无关的任何 url。
我不知道如何访问数据库方法的问题myStuff()
d - 错误:模板实例错误实例化
req
如果太短,我正在尝试显示错误消息。这是代码:
错误是:
source\app.d(80,2): Error: template instance app.showPageNotFound.render!("error.dt", _error).render!("app", "app.showPageNotFound") error instantiating
如果我在做:
我收到错误:
Error: undefined identifier 'res'