mirror of
				https://github.com/vlang/v.git
				synced 2023-08-10 21:13:21 +03:00 
			
		
		
		
	
		
			
				
	
	
		
			59 lines
		
	
	
		
			923 B
		
	
	
	
		
			V
		
	
	
	
	
	
			
		
		
	
	
			59 lines
		
	
	
		
			923 B
		
	
	
	
		
			V
		
	
	
	
	
	
| module main
 | |
| 
 | |
| import vweb
 | |
| import rand
 | |
| 
 | |
| const (
 | |
| 	port = 8082
 | |
| )
 | |
| 
 | |
| struct App {
 | |
| 	vweb.Context
 | |
| mut:
 | |
| 	state shared State
 | |
| }
 | |
| 
 | |
| struct State {
 | |
| mut:
 | |
| 	cnt int
 | |
| }
 | |
| 
 | |
| fn main() {
 | |
| 	println('vweb example')
 | |
| 	vweb.run(&App{}, port)
 | |
| }
 | |
| 
 | |
| pub fn (mut app App) init_server() {
 | |
| 	app.handle_static('.', false)
 | |
| }
 | |
| 
 | |
| ['/users/:user']
 | |
| pub fn (mut app App) user_endpoint(user string) vweb.Result {
 | |
| 	id := rand.intn(100)
 | |
| 	return app.json('{"$user": $id}')
 | |
| }
 | |
| 
 | |
| pub fn (mut app App) index() vweb.Result {
 | |
| 	lock app.state {
 | |
| 		app.state.cnt++
 | |
| 	}
 | |
| 	show := true
 | |
| 	hello := 'Hello world from vweb'
 | |
| 	numbers := [1, 2, 3]
 | |
| 	return $vweb.html()
 | |
| }
 | |
| 
 | |
| pub fn (mut app App) show_text() vweb.Result {
 | |
| 	return app.text('Hello world from vweb')
 | |
| }
 | |
| 
 | |
| pub fn (mut app App) cookie() vweb.Result {
 | |
| 	app.set_cookie(name: 'cookie', value: 'test')
 | |
| 	return app.text('Headers: $app.headers')
 | |
| }
 | |
| 
 | |
| [post]
 | |
| pub fn (mut app App) post() vweb.Result {
 | |
| 	return app.text('Post body: $app.req.data')
 | |
| }
 | 
