vex
1.0.0
module main
import nedpals.vex.router
import nedpals.vex.server
import nedpals.vex.ctx
fn print_req_info(mut req ctx.Req, mut res ctx.Resp) {
println('${req.method} ${req.path}')
}
fn do_stuff(mut req ctx.Req, mut res ctx.Resp) {
println('incoming request!')
}
fn main() {
mut app := router.new()
app.use(do_stuff, print_req_info)
app.route(.get, '/', fn (req &ctx.Req, mut res ctx.Resp) {
res.send_file('index.html', 200)
})
app.route(.get, '/public/*path', fn (req &ctx.Req, mut res ctx.Resp) {
res.send_file('public/' + req.params['path'], 200)
})
app.route(.get, '/path/:name', fn (req &ctx.Req, mut res ctx.Resp) {
println('path is ${req.params["name"]}')
}, fn (req &ctx.Req, mut res ctx.Resp) {
res.send('path: ' + req.params['name'], 200)
})
app.route(.get, '/complex/:name/*path', fn (req &ctx.Req, mut res ctx.Resp) {
res.send('username: ' + req.params['name'] + 'npath: ' + req.params['path'], 200)
})
server.serve(app, 6789)
}
Learn how to setup and use VEX by reading the Wiki.
GET
, POST
, PUT
, PATCH
, DELETE
, and OPTION
HTTP methods.application/x-www-form-urlencoded
supportapplication/json
supportmultipart/form-data
supportgit checkout -b my-new-feature
)git commit -am 'Add some feature'
)git push origin my-new-feature
)Examples can be found at the /examples
directory.
MIT