Cześć,
Pewnie banalne pytanie ale grzebię ( po sieci nie - w dupie) już pod kilku godzin i nie znalazłem rozwiązania. Wykonałem betę na Node.js -> Express -> Handlebars ale okazało się potrzebuję ją uruchamiać przez HTTPS. Żeby nie bawić się zmianę certyfikatów co 45 dni postanowiłem wdrożyć Let's Encrypt pakietem "greenlock". Dokumentacja poprowadziła mnie do uruchomienia serwera HTTPS ale tylko z prostym tekstem "Hello, Encrypted World!" - ja bym chciał natomiast uruchomić całą wcześniej wykonaną aplikację - jeszcze jako świeżak tego nie mogę ogarnąć.
preflight.js (skrócony):
require("greenlock-express")
.init({
packageRoot: __dirname,
configDir: "./greenlock.d",
maintainerEmail: "myster@hide.com",
cluster: false
})
.ready(httpsWorker);
function httpsWorker(glx) {
let httpsServer = glx.httpsServer(null, function (req, res) {
res.end("Hello, Encrypted World!");
});
httpsServer.listen(443, "0.0.0.0", function () {
console.info("Listening on ", httpsServer.address());
});
let httpServer = glx.httpServer();
httpServer.listen(80, "0.0.0.0", function () {
console.info("Listening on ", httpServer.address());
});
}
//.....deklaracja zmiennych....
//....routing np:
app.use(bodyParser.urlencoded({
extended: true
}))
app.use(express.json());
app.engine('handlebars', engine({
defaultLayout: 'main',
}))
app.set('view engine', 'handlebars')
app.get('/', handlers.home)
app.get(...)
app.post(...)
.....
itd.
}))
//....funkcje aplikacji
server.js:
"use strict";
var app = require("./preflight.js");
app.get("/hello", function(req, res) {
res.end("Hello, Encrypted World!");
});
//require("greenlock-express")
require("../../")
.init({
packageRoot: __dirname,
configDir: "./greenlock.d",
maintainerEmail: "jon@example.com",
cluster: false
})
.serve(app);
handlers.js (przykład)
np.
const preflight = require('./../preflight')
exports.home = (req, res) => res.render('home')
})
Pytanie brzmi gdzie i jak mam podpiąć moja aplikację.