visitor-counter

0.2.1 • Public • Published

Visitor counter

Minimal effort way of tracking the amount of visitors on your website.
Uses Mongo DB to store stats.

npm Downloads Last commit Sponsors

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'

Package Sidebar

Install

npm i visitor-counter

Weekly Downloads

14

Version

0.2.1

License

ISC

Unpacked Size

17.7 kB

Total Files

4

Last publish

Collaborators

  • erikthalen