Ballista是一个 Igropyr 官方开发的 应用于 Igropyr 服务器的Express风格web开发框架。

install: raven install ballista

use: (import (ballista ballista))

get

procedure: (get path handler)

procedure: (get path middleware ... handler)

return: unspecified

get用于构建get方法路由,接受任意数量的路由层中间件。

handler接受两个参数,第一个参数取决于中间件处理结果,如无任何中间件则为header, path, query的list。

第二个参数是退出函数。

post

procedure: (post path handler)

procedure: (post path middleware ... handler)

return: unspecified

post用于构建post方法路由,接受任意数量的路由层中间件。

handler接受两个参数,第一个参数取决于中间件处理结果,如无任何中间件则为header, path, payload的list。

第二个参数是退出函数。

next

procedure:(next x)

procedure:(next x y z ...)

return: (lambda (f) (f x y z ...))

next过程用于构造中间件,它接受任意个数参数并返回一个需要一个回调函数作为参数的过程。

next的参数用于调用这个回调函数,它们的参数个数必须相等。

get-use

procedure: (get-use middleware)

get-use用来设置get方法的应用层中间件。可以多次使用来设置多个中间件。

post-use

procedure: (post-use middleware)

post-use用来设置post方法的应用层中间件。可以多次使用来设置多个中间件。

staticpath

procedure: (staticpath path)

return: unspecified

staticpath接受一个字符串作为静态文件夹路径设置,用于取代Igropyr原生(set)调用。

可缺省。

listen-on

procedure: (listen-on ip)

procedure: (listen-on port)

procedure: (listen-on ip port)

return: unspecified

设置服务器监听ip和端口,用于取代Igropyr原生(listen)调用。

可缺省。

server-on

procedure: (server-on)

return: unspecified

用于启动web服务器。用于取代Igropyr原生(server)的调用。

注意(server-on)必须调用于get,post, staticpath和listen-on设置完毕后。

构造中间件

request函数 -> 应用层中间件 -> 路由-> 路由层中间件 -> 事务函数

约定:所有中间件接受两个参数,并用两个参数调用next函数。

第一个中间件的第一个参数将接收header, path, query/payload的list。

其他中间件的第一个参数由它前面的中间件决定。

第二个参数是退出函数,所有中间件必须将退出函数传递下去。

调用next函数将参数和退出函数传递到下一个中间件或事物函数。

调用退出函数将达到阻止访问或跳转的效果,它接受一个函数作为参数。

(define middleware
    (lambda (req return)
        (if <test>
            (next req return)
            (return handle403))))

关于以下过程,详见Catapult

res

send

host?

user-agent?

accept-language?

accept-encoding?

cookie?

connection?

query-parser

results matching ""

    No results matching ""