-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathindex.js
37 lines (32 loc) · 978 Bytes
/
index.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
const express = require('express')
const countapi = require('./lib/countapi')
const { makeBadge } = require('badge-maker')
const md5 = require('md5')
const project = require('./package.json')
const app = express()
app.get('/', (req, res) => {
res.send(project.name)
})
app.get('/:key', async (req, res) => {
const { label, color, style } = req.query
countapi.hit(project.name, md5(req.params.key)).then(result => {
res.set({
'Content-Type': 'image/svg+xml',
'Cache-Control': 'no-cache,max-age=0',
Expires: new Date(new Date().getTime() - 600000).toUTCString()
})
res.send(
makeBadge({
message: (result.value || '0').toString(),
label: label || 'views',
color: color || 'blue',
style: style || 'flat'
})
)
})
})
const host = process.env.HOST || '0.0.0.0'
const port = Number(process.env.PORT || 8000)
app.listen(port, host, () => {
console.log('Server in listening on port ' + port)
})