FileServer action, which is a standard and minimal file server
			HttpRequest class and services to create it
			Serializable::inspect to show more useful information
			more_collections :: more_collections
Highly specific, but useful, collections-related classes.serialization :: serialization_core
Abstract services to serialize Nit objects to different formatsdeserialize_json and JsonDeserializer
			serialize_to_json and JsonSerializer
			core :: union_find
union–find algorithm using an efficient disjoint-set data structure
module example_mongodb is example
import popcorn
import mongodb
import template
class UserList
	super Handler
	var db: MongoDb
	redef fun get(req, res) do
		var users = db.collection("users").find_all(new JsonObject)
		var tpl = new Template
		tpl.add """
		<h1>Users</h1>
		<h2>Add a new user</h2>
		<form action="/" method="POST">
			<input type="text" name="login" />
			<input type="password" name="password" />
			<input type="submit" value="save" />
		</form>
		<h2>All users</h2>
		<table>"""
		for user in users do
			tpl.add """<tr>
			<td>{{{user["login"] or else "null"}}}</td>
			<td>{{{user["password"] or else "null"}}}</td>
			</tr>"""
		end
		tpl.add "</table>"
		res.html(tpl)
	end
	redef fun post(req, res) do
		var json = new JsonObject
		json["login"] = req.post_args["login"]
		json["password"] = req.post_args["password"]
		db.collection("users").insert(json)
		res.redirect("/")
	end
end
var mongo = new MongoClient("mongodb://mongo:27017/")
var db = mongo.database("mongo_example")
var app = new App
app.use("/", new UserList(db))
app.listen("localhost", 3000)
lib/popcorn/examples/mongodb/example_mongodb.nit:17,1--68,29