我想呈现一个node.js页面,该页面的标题由http2提供


我找不到答案。

我将如何提供EJS头,它们通常在">视图/部分";目录,而我正在使用HTTP2模块服务器实例。

这是我的代码:

const http2 = require("http2")
const fs = require("fs")
const server = http2.createSecureServer({
"key": fs.readFileSync("./ssl/private.pem"),
"cert": fs.readFileSync("./ssl/cert.pem")
})
server.on("stream", (stream, headers) => {
stream.respond({
"content-type": "application/json",
"status": 200
})
stream.end(JSON.stringify({
"user": "Moi",
"id": "823"
}))
})
server.listen(443);
console.log("listening on port 443");

我想实现与此文本块后面的代码相同的,但随后在此文本块上面的代码中实现。在原始代码中,它是使用CCD_评论。ejs";文件(这是从视图目录渲染的文件,该目录还包含部分目录,该目录包含header.ejs文件和页脚.ejs

因此,我需要复制以下代码:

app.get("/reviews", function(req, res) {
res.render("reviews"); // I need to replicate this line with HTTP2!
});

我需要复制这个:

app.post("/updated", function(req, res) {
username = req.body.username;
email = req.body.email;
console.log(username, email);
res.redirect("/");
});

所以,我的最后一个问题是,如何在第一个代码片段的代码中复制最后两个代码片段咳嗽咳嗽我的眼睛是方形的

(或者有什么更好的方法来使用SSL,并像使用EJS/视图引擎的旧网站一样呈现我的新网站,以及部分标题(?


|_|>(我(:

谢谢(而且你可能是个书呆子,无意冒犯(。

您可以通过以下方式将express应用程序安装到正在使用的HTTP服务器上。

const server = http2.createSecureServer({
"key": fs.readFileSync("./ssl/private.pem"),
"cert": fs.readFileSync("./ssl/cert.pem")
}, app); // app is Express application that is a function that can handle HTTP requests.
server.listen(...);

更新:我不确定Express是否支持http2,但如果您需要SSL,我相信相同的代码也适用于https模块。

在此处找到解决方案:[https://www.youtube.com/watch?v=USrMdBF0zcg][1]

const express = require('express')
const https = require('https')
const path = require('path')
const fs = require('fs')
const app = express()
app.use('/', (req, res, next) => {
res.send('Hello from SSL server')
})
// app.listen(3000, () => {})
const sslServer = https.createServer({
key: fs.readFileSync(path.join(__dirname, 'cert', 'key.pem')),
cert: fs.readFileSync(path.join(__dirname, 'cert', 'cert.pem'))
}, app)
sslServer.listen(3443, () => console.log('Secure Server on port 3443'))

// SELF-SIGNED CERTIFICATE
// openssl genrsa -out key.pem
// openssl req -new -key key.pem -out csr.pem
// openssl x509 -req -days 365 -in csr.pem -signkey key.pem -out cert.pem

仍然需要检查我的邮寄路线是否有效。。。

基本上我现在拥有的是:

require('dotenv').config();
const express = require('express');
const bodyParser = require('body-parser');
const ejs = require('ejs');
const favicon = require('serve-favicon');
const https = require('https');
const path = require('path');
const fs = require('fs');
const app = express();
const audience_id = process.env.AUDIENCE_ID;
const api_key = process.env.API_KEY;
const api_string = "thisIsNotMyRealAPIKeyPhrase:" + api_key;
const url = "https://us1.api.mailchimp.com/3.0/lists/" + audience_id;
const server = https.createServer({
key: fs.readFileSync(path.join(__dirname, 'cert', 'key.pem')),
cert: fs.readFileSync(path.join(__dirname, 'cert', 'cert.pem'))
}, app)
app.use(favicon(__dirname + "/public/images/favicon.ico"));
app.use(express.static("public"));
app.set("view engine", "ejs");
app.use(bodyParser.urlencoded({
extended: true
}));
app.get("/", function(req, res) {
res.render("home");
})
// etc ...

在文件的末尾:

server.listen(3443, () => console.log('Secure Server on port 3443'))

相关内容

最新更新