【发布时间】:2021-08-06 03:54:36
【问题描述】:
当我使用以下方式启动一个简单的服务器时:
http-server -S -C cert.pem
我得到了一个可用 IP 的列表,我可以选择一个来连接:
Starting up http-server, serving ./ through https
Available on:
https://192.168.1.2:8080
https://169.254.187.206:8080
https://169.254.74.61:8080
https://127.0.0.1:8080
Hit CTRL-C to stop the server
如何在使用 createServer() 时获得相同的列表?
我试过这个来获取一个地址:
var server = https.createServer(options, function(request, response) {
var uri = url.parse(request.url).pathname,
filename = path.join(process.cwd(), uri);
fs.exists(filename, function(exists) {
if(!exists) {
response.writeHead(404, { "Content-Type": "text/plain" });
response.write("404 Not Found\n");
response.end();
return;
}
if (fs.statSync(filename).isDirectory())
filename += '/index.html';
fs.readFile(filename, "binary", function(err, file) {
if(err) {
response.writeHead(500, {"Content-Type": "text/plain"});
response.write(err + "\n");
response.end();
return;
}
var mimeType = mimeTypes[filename.split('.').pop()];
if (!mimeType) {
mimeType = 'text/plain';
}
response.writeHead(200, { "Content-Type": mimeType });
response.write(file, "binary");
response.end();
});
});
}).listen(parseInt(port, 10));
var ip = server.address();
console.log("\n\n Static file server running at:\n address: " + ip.address + "\n family: " + ip.family + "\n port: " + ip.port + "\n\n Hit CTRL+C to stop the server");
我得到了:
Static file server running at:
address: undefined
family: IPv6
port: 8080
Hit CTRL+C to stop the server
今天我花了一个小时试图弄清楚为什么我不能再通过 WIFI 连接到我的本地服务器。原来,不知何故,我使用的地址 https://192.168.1.2:8080 已更改为 https://192.168.1.3:8080 而没有添加任何设备...
【问题讨论】:
标签: javascript node.js https ip localserver