8000 GitHub - jlsandell/luvit-app: A simple framework
[go: up one dir, main page]
More Web Proxy on the site http://driver.im/
Skip to content

jlsandell/luvit-app

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

8 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Server

A collection of middleware and helpers to run Web servers under Luvit.

Usage

-- create application
local app = require('app').new()

local function authorize(session, callback)
  -- user authenticated
  if session and session.uid then
    callback({
      uid = session.uid,
      foo = {
        -- GET /foo?a=b --> foo.query('a=b', ...) --> 200 { "you are": "an authorized user!" }
        query = function (query, cb)
          cb(nil, { ['you are'] = 'an authorized user!' })
        end,
        -- DELETE /foo/1 --> foo.remove('1', ...) --> 204
        remove = function (query, cb)
          cb(nil)
        end
      }
    })
  -- guest
  else
    callback({
      foo = {
        query = function (query, cb)
          cb(nil, { ['you are'] = 'a guest!' })
        end
      }
    })
  end
end

-- tune options
app:set({
-- ... options ...
})

-- handle cookie session and request context
app:use('session', {
  secret = 'topsecret',
  authorize = authorize,
})

-- serve chrome page
app:GET('/$', function (self, nxt)
  self:render('index', {foo = 'bar'})
end)

-- custom route
app:GET('/foo$', function (self, nxt)
  self:send(200, 'FOO')
end)

-- run server
app:run(8080, '0.0.0.0')

License

MIT

About

A simple framework

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published
0