summaryrefslogtreecommitdiffstats
path: root/examples/server.js
blob: bff88e368c7ff67a8d82ecdb3ef03d1d91dab8cb (plain)
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
'use strict'

const createCert = require('create-cert')
const {
	createServer: createGeminiServer,
	DEFAULT_PORT,
} = require('..')

const onRequest = (req, res) => {
	if (req.path === '/foo') {
		res.write('foo,')
		res.end('bar')
	} else {
		res.gone()
	}
}

const onError = (err) => {
	console.error(err)
	process.exit(1)
}

createCert('example.org')
.then((keys) => {
	const server = createGeminiServer({
		tlsOpt: keys,
		// todo: SNICallback
	}, onRequest)
	server.on('error', onError)

	server.listen(DEFAULT_PORT, (err) => {
		if (err) return onError(err)
		const {address, port} = server.address()
		console.info(`listening on ${address}:${port}`)
	})
})
.catch(onError)