Endpoint Demo

node v6.11.2
version: master
The world's simplest hit counter, using a hosted database service called Orchestrate: https://orchestrate.io
var db = require('orchestrate')(process.env.ORCHESTRATE_KEY) exports.tonicEndpoint = async function(request, response) { await db.newPatchBuilder("counts", process.env.TONIC_MOUNT_PATH) .upsert(true) .init("count", 0) .inc("count") .apply() var hits = await db.get("counts", process.env.TONIC_MOUNT_PATH) response.end(hits.body.count.toString()) }
We've set our Orchestrate API key in our environment variables, which we use to initialize the db at the start. Then, on every request, we simply increment the count. Finally, we retrieve the current count and return it. It's important to do the increment this way, so that concurrent updates aren't lost. We then read back out the current value, which may have been updated by someone else already, but that doesn't much matter. The count is stored on a document with an ID matching the "TONIC_MOUNT_PATH" environment variable, which is the URL of this document.

no comments

    sign in to comment