Express Stati c Каталог через HTTPS - PullRequest
0 голосов
/ 14 июля 2020

Я хотел бы реализовать Node.js с Express для содержимого c через HTTPS. Поиск в Интернете обнаруживает множество примеров Express с HTTPS и множество примеров Express, обслуживающих каталог stati c, но я не могу найти пример, использующий все три Express, HTTPS и stati c.

Более того, глядя на примеры, которые я могу найти, я не могу понять, как выполнить sh это.

Вот что я нашел:

Express Stati c Каталог через HTTP

var fs = require('fs')
var app = require("express");

var server = app();
server.use(app.static(staticDir))
server.listen(webPort)

Express через HTTPS (без Stati c Каталог)

const app = require('express')();
const https = require('https');
const server = https.createServer(
        {
        key: fs.readFileSync('server.key'),
        cert: fs.readFileSync('server.cert')
        },
        app
    );
server.listen(APIPort);

Когда я пытаюсь объединить два подхода, я застреваю, потому что пример stati c обходит createServer, и все же createServer является ключевым моментом перехода на HTTPS в примерах.

Я уверен, что ответ прост, но я не могу найти или найти решение.

1 Ответ

1 голос
/ 14 июля 2020

Не могли бы вы попробовать приведенный ниже фрагмент кода и посмотреть, работает ли он для вас?

const fs = require('fs');
const https = require('https');
const express = require('express');

const app = express();
app.use(express.static(process.env.SERVE_DIRECTORY));

app.get('/', function(req, res) {
    return res.end('Serving static files!');
});

const key = fs.readFileSync(__dirname + '/selfsigned.key');
const cert = fs.readFileSync(__dirname + '/selfsigned.crt');

const options = {
    key: key,
    cert: cert
};

const server = https.createServer(options, app);

server.listen(PORT, () => {
    console.log(`Serving on port ${PORT}`);
});

Пожалуйста, убедитесь, что вы внесли подходящие изменения перед запуском вышеуказанного кода.

...