summaryrefslogtreecommitdiffstats
path: root/examples
diff options
context:
space:
mode:
authorJannis R <mail@jannisr.de>2020-05-02 15:32:36 +0200
committerJannis R <mail@jannisr.de>2020-05-02 16:35:50 +0200
commit1b5af6f4bdfca939e780ae70bd6e1819425824f7 (patch)
tree4e3fb0c4957680348c473ff45e3478780d1ba55c /examples
parent635b65aa8af3b35a4ea2c8a5fea805853942cbf4 (diff)
move code, server example :memo:
Diffstat (limited to 'examples')
-rw-r--r--examples/server.js37
1 files changed, 37 insertions, 0 deletions
diff --git a/examples/server.js b/examples/server.js
new file mode 100644
index 0000000..bff88e3
--- /dev/null
+++ b/examples/server.js
@@ -0,0 +1,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)