Skip to content

erikthalen/visitor-counter

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

46 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

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

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'

About

Tracks number of visitors on your website

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published