@sumor/ssl-server
v1.1.2
Published
An SSL web server for Expressjs easily support HTTPS
Downloads
249,124
Readme
ssl-server
A Sumor Cloud Tool.
More Documentation
SSL Web Server with Express, Support HTTP/2
Installation
npm i @sumor/ssl-server --save
Prerequisites
Node.JS version
Require Node.JS version 18.x or above
require Node.JS ES module
As this package is written in ES module,
please change the following code in your package.json
file:
{
"type": "module"
}
Usage
Host a simple server
import createApp from '@sumor/ssl-server'
const app = createApp()
// listen on port 443 by default if not specified, and redirect 80 to https 443
await app.listen()
console.log('Server running at https://localhost:443/')
Add SSL files
Please add SSL files into root folder ssl
with the following names:
domain.crt
domain.key
ca.crt
(Optional, It will append to the certificate chain)
If not found, the server will generate a self-signed certificate.
If SSL files changed, it will auto-reload.
Features
it supports all express features, only difference is the listen
and close
method. Please refer below example for more details.
Add middlewares and routes
import createApp from '@sumor/ssl-server'
const app = createApp()
import bodyParser from 'body-parser'
// you can add any express middleware
app.use(bodyParser.json())
// add routes
app.get('/', (req, res) => {
res.send('Hello World!')
})
// listen is async function
await app.listen()
Force close server
import createApp from '@sumor/ssl-server'
const app = createApp()
// listen is async function
await app.listen()
// close is async function
await app.close()
Listen on custom port
import createApp from '@sumor/ssl-server'
const app = createApp()
// listen is async function
await app.listen(8443, 8080)
console.log(`Server is running on https://localhost:8443/`)
console.log(`Redirect server is running on http://localhost:8080/`)
Listen only http
import createApp from '@sumor/ssl-server'
const app = createApp()
// listen is async function
await app.listen(null, 8080)
console.log(`Redirect server is running on http://localhost:8080/`)
Use custom app
By default, ssl server will use latest express long term support version. You can use your own express app by passing it to createApp
function.
import createApp from '@sumor/ssl-server'
import express from 'express'
const expressApp = express()
expressApp.get('/', (req, res) => {
res.send('Hello World!')
})
const app = createApp(expressApp)
// listen is async function
await app.listen()
console.log('Server running at https://localhost:443/')