使用NextJS + Express在localhost上进行HTTPS

  • 快递:4.16.4
  • NextJS:8.0.3
  • 反应:16.8.4
  • ReactDOM:16.8.4

在本地主机上使用基于HTTPS的SSL服务Web应用程序

  1. 使用Create Next App创建基本的NextJS应用程序
  2. 使用OpenSSL生成证书和密钥,并将其移至项目目录
  3. 添加了Express依赖
  4. 将应用程序配置为在内部使用Express server.js
  5. 更改了脚本以使用server.js内部package.json脚本。

const express = require('express');

const next = require('next');

const dev = process.env.NODE_ENV !== 'production';

const app = next({ dev });

const handle = app.getRequestHandler();

const port = 3000;

const https = require('https');

const fs = require('fs');

const httpsOptions = {

key: fs.readFileSync('./certificates/key.pem'),

cert: fs.readFileSync('./certificates/cert.pem')

};

app

.prepare()

.then(() => {

const server = express();

server.get('*', (req, res) => {

return handle(req, res);

});

server.listen(port, err => {

if (err) throw err;

console.log('> Ready on http://localhost: ' + port);

});

})

.catch(ex => {

console.error(ex.stack);

process.exit(1);

});

使用初始化时,该应用当前可以运行yarn

dev。我尝试使用此答案通过https服务该应用程序,但无法弄清楚如何使用NextJS将其应用于当前设置。

我花了很多时间研究网络上如何应用此解决方案,但还没有找到实现此工作的方法。

任何帮助是极大的赞赏。

回答:

您只需要使用模块的createServer方法https

const { createServer } = require('https');

const { parse } = require('url');

const { readFileSync } = require('fs');

const next = require('next');

const port = 3000;

const dev = process.env.NODE_ENV !== 'production';

const app = next({ dev });

const handle = app.getRequestHandler();

const httpsOptions = {

key: readFileSync('./certificates/key.pem'),

cert: readFileSync('./certificates/cert.pem')

};

app.prepare()

.then(() => {

createServer(httpsOptions, (req, res) => {

const parsedUrl = parse(req.url, true);

handle(req, res, parsedUrl);

}).listen(port, err => {

if (err) throw err;

console.log(`> Ready on https://localhost:${port}`);

})

});

以上是 使用NextJS + Express在localhost上进行HTTPS 的全部内容, 来源链接: utcz.com/qa/425316.html

回到顶部