node.js - 非常基本的 https 服务器
问题描述
我创建了一个 http 服务器,一切正常。
但我实际上想创建一个 https 服务器。我不关心安全性,因为这只是为了测试。
如何从 https 而不是 http 公开我的数据?
这很容易做到吗?知道我怎么能很容易地做到这一点吗?
"use strict";
var http = require("http");
var fs = require("fs");
var port = 5050;
var cors = function cors(req, res) {
res.setHeader('Access-Control-Allow-Origin', req.headers.origin);
res.setHeader('Access-Control-Allow-Credentials', 'true');
res.setHeader('Access-Control-Request-Method', '*');
res.setHeader('Access-Control-Allow-Methods', 'OPTIONS, GET');
res.setHeader('Access-Control-Allow-Headers', '*');
if (req.method === 'OPTIONS') {
res.writeHead(200);
res.end();
return;
}
};
var server = http.createServer(function(request, response) {
// simulate SEND to IPP Process
if(request.method === 'PUT') {
response.writeHead(200, { 'Content-Type': request.headers.accept });
response.end();
return;
}
if (request.headers.origin) {
cors(request, response);
}
var fileName = request.url.substr(request.url.lastIndexOf('/')+1);
if(fileName !== 'favicon.ico') {
fileName = fileName === 'inData' ? 'all' : fileName;
try {
response.writeHead(200, {'Content-Type': request.headers.accept});
var res = '';
if(request.headers.accept === 'application/xml') {
res = fs.readFileSync('mock/data/'+fileName+'.xml');
} else if (request.headers.accept === 'text/plain') {
res = fs.readFileSync('mock/data/'+fileName+'.txt');
} else {
if(fileName.indexOf('?') !== -1) {
fileName = fileName.substr(0, fileName.indexOf('?'));
}
res = fs.readFileSync('mock/data/'+fileName+'.json');
}
response.write(res);
} catch (e) {
console.warn(e.message);
response.writeHead(400, {});
}
response.end();
} else {
response.writeHead(400, {"Content-Type": "text/html"});
response.end();
}
});
server.listen(port);
console.log("Server is listening at http://localhost:"+port);
解决方案
推荐阅读
- html - Css 中心对齐显示:flex navbar
- r - 基于 R 的 Power 9 CPU 工作(ppc64le 架构)?
- javascript - 基于变量加载一对图像
- polymer - 将 @Polymer/app-storage 与 lit-element 一起使用
- python-3.x - 实现一个python类
- web-scraping - Scraping - 查找所有子类的名称
- azure - Azure 区块链服务 - 如何向/从事务节点写入和读取?
- terminal - iTerm2:当 PS1 提示的路径太长时,不同行上的路径会损坏(\n)
- python - 如何在 Spyder 4 上隐藏悬停工具提示
- python - LSQ 子问题错误中的奇异矩阵 C - 多个配方