Skip to content

Repository files navigation

ExExpress

Swift4Swift5macOStuxOSTravis

TODO

Checkout the ApacheExpress README. ExExpress is a server-independent Express toolkit for Swift. ApacheExpress is using that by providing the HTTP 'driver' for ExExpress.

ApacheExpress

TODO: Cleanup the README.

This is what you can do

Fair enough. So we integrated a tiny subset of Noze.io to allow you to do just that. This is what it looks like:

server.onRequest{ req, res in
res.writeHead(200,["Content-Type":"text/html"])try res.end("<h1>Hello World</h1>")}

Now you are saying, this is all nice and pretty. But what about Connect? I want to write and reuse middleware! Here you go:

letapp= server.connect()
app.use{ req, res, next in
console.info("Request is passing Connect middleware ...")
res.setHeader("Content-Type","text/html; charset=utf-8")
// Note: we do not close the request, we continue with the next middleware
trynext()}
app.use("/express/connect"){ req, res, next intry res.write("<p>This is a random cow:</p><pre>")try res.write(vaca())try res.write("</pre>")
res.end()}

And Express? Sure, the ExExpress is about to leave:

letapp= server.express(cookieParser(),session())
app.get("/express/cookies"){ req, res, _ in
// returns all cookies as JSON
try res.json(req.cookies)}
app.get("/express/"){ req, res, _ inlettagline=arc4random_uniform(UInt32(taglines.count))letvalues:[String:Any]=["tagline":taglines[Int(tagline)],"viewCount": req.session["viewCount"]??0,"cowOfTheDay": cows.vaca()]try res.render("index", values)}

Documentation

ApacheExpress documentation can be found at: docs.apacheexpress.io.

Who

mod_swift, ApacheExpress and ExExpress are brought to you by ZeeZide. We like feedback, GitHub stars, cool contract work, presumably any form of praise you can think of.

There is a #mod_swift channel on the Noze.io Slack.

About

A simple, synchronous, Express-like web/middleware framework for Swift

Topics

Resources

Stars

8 stars

Watchers

1 watching

Forks

Releases

Contributors

Languages