ApacheExpress 允许您快速编写服务器端 Swift 应用程序,这些应用程序作为原生模块在 Apache Web 服务器 中运行。
待办事项:清理 README。 mods_expressdemo
一个非常基本的请求/响应处理程序
public func ApacheMain(_ cmd: OpaquePointer) {
let app = ApacheExpress.express(cmd)
app.server.onRequest { req, res in
res.writeHead(200, [ "Content-Type": "text/html" ])
try res.end("<h1>Hello World</h1>")
}
}
像可重用的中间件一样连接
public func ApacheMain(_ cmd: OpaquePointer) {
let app = ApacheExpress.express(cmd)
app.use { req, res, next in
console.info("Request is passing Connect middleware ...")
res.setHeader("Content-Type", "text/html; charset=utf-8")
next()
}
app.use("/connect") { req, res, next in
try res.write("<p>This is a random cow:</p><pre>")
try res.write(vaca())
try res.write("</pre>")
res.end()
}
}
Apache Express 即将启动
public func ApacheMain(_ cmd: OpaquePointer) {
let app = apache.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, _ in
let tagline = arc4random_uniform(UInt32(taglines.count))
let values : [ String : Any ] = [
"tagline" : taglines[Int(tagline)],
"viewCount" : req.session["viewCount"] ?? 0,
"cowOfTheDay" : cows.vaca()
]
try res.render("index", values)
}
}
是的。所有这些都在 Apache 中运行。
ApacheExpress 文档可以在以下位置找到:docs.apacheexpress.io。
ApacheExpress 由 ZeeZide 提供。 我们喜欢反馈、GitHub Star、酷炫的合同工作,大概是你能想到的任何形式的赞美。
在 Noze.io Slack 上有一个 #apacheexpress
频道。