私がフォローコード持っている:私は必要だったスコープ外のクラスメソッドのインスタンスにアクセスする正しい方法は何ですか?
import std.stdio;
import database;
import router;
import config;
import vibe.d;
void main()
{
Config config = new Config();
auto settings = new HTTPServerSettings;
settings.port = 8081;
settings.bindAddresses = ["::1", "127.0.0.1"];
auto router = new URLRouter();
router.get("/*", serveStaticFiles("./html"));
Database database = new Database(config);
database.MySQLConnect(); // all DB methods are declared here
router.registerRestInterface(new MyRouter(database));
router.get("*", &myStuff); // all other request
listenHTTP(settings, router);
logInfo("Please open http://127.0.0.1:8081/ in your browser.");
runApplication();
}
void myStuff(HTTPServerRequest req, HTTPServerResponse res) // I need this to handle any accessed URLs
{
writeln(req.path); // getting URL that was request on server
// here I need access to DB methods to do processing and return some DB data
}
は、任意のRESTインスタンスに関係のない任意のURLを処理するためにrouter.get("*", &myStuff);
を作成します。
私はvibe.d経験がないmyStuff()
「データベース」を「共有」してモジュールスコープに移動しますか? –