A wrapper around express. In it's most basic usage, it just exposes an express app, but it has support for starting with ssl.
Start returns a promise that resolves when startup is complete.
const app = require('@kth/server')
app.start()
.then((res) => {
// Do something...
})
The import returns an Express.js instance, so you can add middleware and functions just as in a normal express app:
app.get('/', function (req, res) {
res.send('Hello world!')
})
To stop the instance you call app.close() which returns a promise that resolves when done.
app.close()
.then(() => {
// Do something...
})
const app = require('@kth/server')
const optionsForSsl = {
useSsl: true,
pfx: '/path/to/file.pfx',
passphrase: '/path/to/file.txt',
port: 3000, // Optional, defaults to 3000
logger: console // Optional, defaults to console
}
app.start(optionsForSsl)
const app = require('@kth/server')
const optionsForSsl = {
port: 3000, // Optional, defaults to 3000
logger: console // Optional, defaults to console
}
app.start(optionsForSsl)
$ openssl genrsa 2048 > test/certs/private.pem
$ openssl req -x509 -days 1000 -new -key test/certs/private.pem -out test/certs/public.pem -subj "/C=SE/ST=SWEDEN/L=Provo/O=kth-node-server/CN=www.test.com"
$ openssl pkcs12 -export -in test/certs/public.pem -inkey test/certs/private.pem -passout pass:test -out test/certs/withpassphrase.pfx
$ echo 'test' >> test/certs/passphrase.txt
$ rm test/certs/private.pem test/certs/public.pem
TODO: write test for signing requests with cert