Dub - vibe.d - hunt framework ... problems

zoujiaqing zoujiaqing at gmail.com
Thu Feb 6 10:28:01 UTC 2020


On Saturday, 1 February 2020 at 10:35:52 UTC, seany wrote:
> Hi
> I want to start a small server, that will be accessible form 
> outside. Not a huge deal right?
> Not quite.
>
> My machine: 4.15.0-66-generic #75-Ubuntu SMP Tue Oct 1 05:24:09 
> UTC 2019 x86_64 x86_64 x86_64 GNU/Linux
>
> DMD : DMD64 D Compiler v2.090.0
> Copyright (C) 1999-2019 by The D Language Foundation, All 
> Rights Reserved written by Walter Bright
>
>
> Now, I try to install dub from the official repo.
> Then I do
>
> * dub init server -t vibe.d
> * cd server
> * dub
>
> I hit this issue : https://github.com/dlang/dub/issues/1712
>
> As suggested, i try to build dub from github, following: 
> https://github.com/dlang/dub/releases
>
> I call ./build.d - and everything stops, and machine crashes.
>
> I then try to install DaNode: 
> https://github.com/DannyArends/DaNode
>
> It breaks with : module std.algorithm import 'mean' not found
>
> Then I try to install the Hunt Framework. It breaks with : 
> basic type
> expected, not foreach
>
>
> Please help. I really want this issue to be resolved-

## 1. For simple server you can using hunt-http library.

Sample code:
```
import hunt.http;

void main()
{
     HttpServer server = HttpServer.builder()
         .setListener(8080, "0.0.0.0")
         .onPost("/", (RoutingContext context) {
             context.end("Hello World!");
         })
         .onGet("/user/:name", (RoutingContext ctx) {
             string name = ctx.getRouterParameter("name");

             ctx.write("Hello " ~ name);
             ctx.end();
         })
         .build();

     server.start();
}
```

## 2. For full server, you can using hunt-skeleton 
(hunt-framework based):
```bash
git clone https://github.com/huntlabs/hunt-skeleton.git myproject/
cd myproject/
dub run -v
```

You can Add pages in `config/routes` , like this:
```
GET   /   index.index
GET   /user/{name}    user.detail
```

Add Controller file `controller/UserController.d` :
```
module app.controller.UserController;

import hunt.framework;

class UserController : Controller
{
     mixin MakeController;

     @Action
     string detail(string name)
     {
         return "Hello " ~ name;
     }
}
```

Build and run it:
```
cd myproject/
dub run -v
```

You can see it in the borwser:
```
http://localhost:8080
```


More information about the Digitalmars-d-learn mailing list