visitor-counter
v0.2.1
Published
Tracks number of visitors on your website
Downloads
32
Maintainers
Readme
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'
|