Nodejs搭建本地http服务器,通过【内网穿透】实现远程访问

目录

前言

1.Node.js下载

2.创建node服务器

3.打开node服务器

4.内网穿透实现远程访问

4.1安装cpolar

4.2创建隧道(网站) 

4.3固定公网地址


前言

        今天我们学习一个有意思的东西,那就是内网穿透。在此之前我有一些关于html、CSS和JavaScript相关的文章来教大家如何去做一个简单的网页,那既然有了网页,那怎么把这些网页给发布出去给别人访问呢?今天我们就通过内网穿透来实现这个功能,下面接着看。

1.Node.js下载

        Node.js 是一个开源和跨平台的 JavaScript 运行时环境。 它是几乎任何类型项目的流行工具! Node.js 在浏览器之外运行 V8 JavaScript 引擎(Google Chrome 的内核)。 这使得 Node.js 非常高效。 Node.js 应用在单个进程中运行,无需为每个请求创建新线程。

下载地址:下载 | Node.js (nodejs.org) 

 根据自己电脑操作系统去直接下载安装就行了。

安装完成之后,cmd进入到命令提示符,输入以下指令。 

node -v

如果显示以下的情况,就说明安装成功了。 

2.创建node服务器

创建一个node服务器,就要用到已有的网页html代码和JavaScript来去实现。首先在VScode创建一个文件夹作为目录,然后分别放置html和JavaScript代码文件,如下图所示:

html代码:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Code</title>
    <style>
        body{
            margin: 0;
            overflow: hidden;
        }
    </style>
</head>

<body>
<canvas id="myCanvas"></canvas>
<script>
    const width = document.getElementById("myCanvas").width = screen.availWidth;
    const height = document.getElementById("myCanvas").height = screen.availHeight;
    const ctx = document.getElementById("myCanvas").getContext("2d");
    const arr = Array(Math.ceil(width / 10)).fill(0);
    const str = "ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789".split("");

function rain() {
    ctx.fillStyle = "rgba(0,0,0,0.05)";
    ctx.fillRect(0, 0, width, height);
    ctx.fillStyle = "#0f0";
    arr.forEach(function (value, index) {
        ctx.fillText(str[Math.floor(Math.random() * str.length)], index * 10, value + 10);
        arr[index] = value >= height || value > 8888 * Math.random() ? 0 : value + 10;
    });
}

setInterval(rain, 30);
</script>
</body>
</html>

显示效果如下: 

1696150004782

JavaScript服务器代码


const http = require('http');
 
//加载文件模块
const fs = require("fs");
 
const hostname = '127.0.0.1';
//端口
const port = 3630;
 


const server = http.createServer((req, res) => {
  res.statusCode = 200;
  res.setHeader('Content-Type', 'text/html');
 
  fs.readFile('./rain.html', (err, data) => {
    if (err) throw err;
    console.log(data.toString);
    res.end(data);
  });
 
});
 
server.listen(port, hostname, () => {
  console.log(`Server running at http://${hostname}:${port}/`);
});

JavaScript代码就是在端口号为3630开起服务器监听。

3.打开node服务器

在这个目录文件下,打开终端,如下图所示:

打开了终端之后,输入指令  node ./node.js 回车之后就会返回一个服务器的链接地址,复制这个地址在浏览器打开。效果如下图所示:

4.内网穿透实现远程访问

4.1安装cpolar

cpolar官网:cpolar - 安全的内网穿透工具

点击进去,下载安装coplar,后面直接下架就行了,安装到默认路径即可

安装完成了之后就用自己的邮箱先注册一个账号。 

4.2创建隧道(网站) 

进去之后就是这样子的,然后点击创建隧道。

 进入之后,就去创建一个指向本地的3630端口号的隧道

隧道名称:(自定义即可)

协议:http

本地地址:3630

域名类型:随机域名(免费域名,随机分配)

地区:选择China Top

 点击创建之后,打开在线隧道列表,我们就可以看到服务器已经生效了,有两个公网地址,如下图所示

复制网址,然后在浏览器打开,效果如下图所示,这就说明我们创建成功啦!现在你可以把你的这个网址发现给你的朋友,让他们都可以看到你的网页啦!

4.3固定公网地址

        在此之前我需要说明一下,当前创建的网站寿命只有24小时,也就是说你这个网站过24小时后就无效了,毕竟我们用的是免费的嘛(随机分配的网址),如果你还想让你这个网页能够发布出去,那就只能重新创建隧道咯。如果你想让你的网站保存下来,那就要去交点钱来保留你这个域名即可。

进入到coplar官网,点击预留,然后保留二级子域名这里,购买套餐即可。

购买了套餐之后,在创建隧道这边的域名类型就直接去点击二级子域名就行了。然后你的网站就是固定的了。

以上就是本期的内容了,是不是很有意思呢?你也写一个小网站试试吧!

分享一张壁纸:

使用Node.js搭建本地服务器非常简单。首先,我们需要安装Node.js。 安装完成后,打开终端(或命令行窗口),进入想要搭建服务器的文件夹。 创建一个新的Node.js文件,命名为server.js(或其他任何你喜欢的名称),然后将以下代码复制到该文件中: ```javascript const http = require('http'); const fs = require('fs'); const path = require('path'); const server = http.createServer((req, res) => { let filePath = path.join(__dirname, req.url); let contentType = 'text/html'; fs.exists(filePath, (exists) => { if (exists) { fs.readFile(filePath, (error, content) => { if (error) { res.writeHead(500); res.end('Server Error'); } else { res.writeHead(200, { 'Content-Type': contentType }); res.end(content, 'utf-8'); } }); } else { res.writeHead(404); res.end('File Not Found'); } }); }); server.listen(3000, () => { console.log('Server running at http://localhost:3000/'); }); ``` 上述代码使用了Node.js的HTTP、FS和Path模块。server.js文件创建了一个HTTP服务器。当有请求发送到服务器时,它会检查请求的URL地址是否是文件路径,并将请求的文件作为响应发回给客户端。 在终端中运行以下命令启动服务器: ``` node server.js ``` 这将在本地启动一个HTTP服务器,监听在3000端口上。你可以通过浏览器访问http://localhost:3000/ 来访问该服务器。 请注意,在代码中,`contentType`变量默认设置为'text/html',这意味着服务器会将所有请求的文件作为HTML文件返回。你也可以根据需要更改它,例如如果你想返回CSS文件,可以将其设置为'text/css'。 以上就是使用Node.js搭建本地服务器并访问文件的简单过程。希望对你有所帮助!
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Fitz&

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值