Visitor counter
Minimal effort way of tracking the amount of visitors on your website.
Uses Mongo DB to store stats.
Demo:
https://counter.xxxxxxxxxx.xyz/
Usage
// Node http server
import http from 'http'
import counter from 'visitor-counter'
// init the package with a mongodb url
const stats = await counter()
const httpServer = http.createServer(async (req, res) => {
// add recorder in request handler
await stats.record(req, res)
/**
* optional ui-middleware
* navigate to "/visitor-counter" in your app to see ui
*/
await stats.ui(req, res)
// get stats somewhere in your app
// param can be either:
// '2021,1,1' -> returns visitor count from date to now
// '2021,1,1-2021,12,31' -> returns visitor count between dates
// second | minute | hour | day | week | month | year -> helpers
res.end(JSON.stringify(await stats.get('month')))
})
httpServer.listen(3333, () => console.log('running on http://localhost:3333'))
// Express
import express from 'express'
import counter from 'visitor-counter'
const app = express()
const stats = await counter()
app.use(await stats.record)
app.use(await stats.ui)
app.get('/', async (req, res) => {
res.send(JSON.stringify(await stats.get('month')))
})
app.listen(3000)
API
await stats.record(req, res) // track visitor
await stats.ui(req, res) // middleware to activate ui
await stats.get() // get all stats
await stats.get('2022/02/01') // get stats from date
await stats.get('2022/03/01', '2022/04/01') // get stats within date range
await stats.visitors() // get current amount of visitors
Options:
Name | Description | Type | Default |
---|---|---|---|
mongourl |
url to mongodb server | String | 'mongodb://127.0.0.1:27017' |
id |
collections name prefix, when using multiple counters | String | 'default' |