node 请求内网_Nodejs轻松搭建局域网服务器
Nodejs轻松搭建局域网服务器
一、前言
前端开发经常会遇到移动端调试或者其它设备测试的场景,部署到云服务器上实在是太麻烦,如果可以在局域网直接调试就方便多了,Nodejs较为接近前端,选它来搭建局域网服务器便于上手。
二、代码实现
因为只是要测试前端部分,所以实现的功能是静态文件服务器即可。参考了一下这篇文章,试着写了一个简单的静态文件服务器,实现了基本的路由、静态文件读取、MIME类型支持的功能,直接贴代码:
首先是主程序app.js
var http = require('http');
var url = require('url');
var path = require('path');
var fs = require('fs');
var mime = require('./mime');
//服务器端口号
var port = 8888;
//服务器路径
var root = './your-path';
//默认访问根目录下的"index.html"
var index = 'index.html';
http.createServer(function (request, response) {
var realPath = url.parse(request.url).pathname;
//默认访问根目录下的index.html
if (realPath.charAt(realPath.length - 1) == "/") {
realPath += index;
}
//安全问题,禁止父路径
realPath = realPath.replace(/\.\./g, '');
var realPath = root + realPath;
//获取文件的后缀名,为待会的MIME类型提供支持
var ext = path.extname(realPath);
ext = ext ? ext.slice(1) : 'unknown';
//先判断访问文件是否存在,并返回对应的HTTP状态码,再读取静态文件
fs.exists(realPath, function (exists) {
console.log('path.exists--%s', exists);
if (!exists) {
response.writeHead(404, {
'Content-Type': 'text/plain'
});
response.write("This request URL " + realPath + " was not found on this server.");
response.end();
} else {
fs.readFile(realPath, "binary", function (err, file) {
if (err) {
response.writeHead(500, {
'Content-Type': 'text/plain'
});
response.end(err + '');
} else {
//MIME类型支持
var contentType = mime[ext] || "text/plain";
response.writeHead(200, {
'Content-Type': contentType
});
response.write(file, "binary");
response.end();
}
});
}
});
}).listen(port);
// 终端打印运行信息
console.log('Server running at port:' + port);
然后是支持MIME类型mime.js
var mime = {
"html": "text/html",
"ico": "image/x-icon",
"css": "text/css",
"gif": "image/gif",
"jpeg": "image/jpeg",
"jpg": "image/jpeg",
"js": "text/javascript",
"json": "application/json",
"pdf": "application/pdf",
"png": "image/png",
"svg": "image/svg+xml",
"swf": "application/x-shockwave-flash",
"tiff": "image/tiff",
"txt": "text/plain",
"wav": "audio/x-wav",
"wma": "audio/x-ms-wma",
"wmv": "video/x-ms-wmv",
"xml": "text/xml"
};
module.exports = mime;
至此代码完成,这个静态文件服务器已经能够支持一些常用访问请求了。
运行程序
为了让别的设备能在局域网内访问你的服务器,我们首先要知道你的本机IP。
CMD下输入“ipconfig”,找到“无线局域网适配器 Wi-Fi”:
这里可以看到路由器给你分配的局域网ip地址为 192.168.1.109,确保你要测试的其它设备与服务器在同一局域网后,在浏览器上输入此IP地址加上在app.js 里面设置的端口号就可以访问了(本例为“192.168.1.109:8888”)。
自此局域网服务器搭建完成。
转载请注明出处,欢迎分享
node 请求内网_Nodejs轻松搭建局域网服务器相关推荐
- 【计算机网络课程设计】内网穿透、搭建FTP服务器(局域网和广域网)以及对于花生壳发送X11包得一些推测
搭建FTP服务器.对X11包的推测 FTP概述 一.FTP工作模式及传输模式 FTP工作模式 1.主动模式 2.被动模式 FTP传输模式 1.ASCLL传输模式 2.二进制数据传输模式 二.FTP服务 ...
- hsk内网穿透+SERV-U+搭建FTP服务器+并实现外网访问
转载:https://service.oray.com/question/752.html hsk服务目前的用户量已达1600万以上,广泛应用于网站建设.视频监控.遥感测绘.FTP.VPN.企业OA. ...
- 离线/内网环境下搭建vue开发环境
系列文章目录 第一讲 离线/内网环境下搭建vue开发环境 第二讲 内网环境运行maven项目 目录 外网环境搭建 一.安装nodeJS 二.安装vue依赖包 内网环境正式开始 准备工作: 一.安装no ...
- 树莓派3 利用frp内网穿透web搭建 -- bt下载机的应用
树莓派3 利用frp内网穿透web搭建 -- bt下载机的应用 请参考我前面写的博客:http://blog.csdn.net/wang ...
- frp内网穿透并搭建配置使用
一文搞懂frp内网穿透并搭建配置使用 原文链接 ->https://developer.aliyun.com/article/853534?spm=ding_open_doc.document. ...
- java http 服务器搭建_基于http.server搭建局域网服务器过程解析
不知道大家有没有遇到过这样的情况, 在做项目或者研发的时候,迫切想要将一个文件传输给另一台电脑,却找不到u盘,于是麻烦的通过登陆qq.微信等社交软件 ,或者邮箱等工具进行传输,十分麻烦,让人苦恼.都说 ...
- frp点对点udp方式内网穿透ssh,不走服务器流量
frp点对点udp方式内网穿透ssh,不走服务器流量 (2019 年 5 月 30 日) frp ssh 安全连接和服务器安全设置 (2019 年 5 月 29 日) frp 控制台监控dashboa ...
- FRP内网穿透映射本地内网80端口到云服务器
FRP内网穿透映射本地内网80端口到云服务器 如题,我的配置中本地服务器和云服务器都为ubuntu20.04,但CentOS同样适用. PS:怎么把网页部署到本地80端口请找别的教程,本文重点在内网穿 ...
- 内网入口——代理搭建端口转发
在内网渗透过程中经常会遇到搭建代理和端口转发的情况,本文记录一些常用工具的使用方法和典型应用场景,便于查阅. 文章目录 代理搭建&端口转发 1.EW 2.Venom 3.Stowaway 4. ...
- 内网穿透从搭建到溯源
目录 背景 内网穿透及溯源 网络层隧道搭建 传输层隧道搭建 应用层隧道搭建 测试通信 案例 总结 背景 在攻防博弈这个永久的话题中,永远不会缺少一个重要角色即内网穿透.当渗透测试人员在进入内网,需要扩 ...
最新文章
- 在CentOS 6.3 64bit上安装FTP服务器vsftpd 2.2.2
- python numpy模块
- html ie浏览器视频无法播放视频,HTML5视频以Chrome格式播放,但不播放IE9
- apache虚拟机配置步骤和修改访问端口
- ThinkPHP跨控制器调用方法
- Kafka消息序列化和反序列化(上)
- java合并单元格同时导出excel
- vue 外部方法调用内部_vue函数内部调用外部函数,报错外部函数不是函数
- POM.xml红叉解决方法
- update和delete操作忘加where条件导致全表更新的处理方法
- java连接hbase_HBase实战 | 05405.15.0Spark2使用HBaseSpark访问HBase
- linux 服务器(CentOS7)搭建PHP环境+SSH配置+服务器文件上传配置
- 前端flv.js设置缓冲时间和大小_不可不知的 WEB 前端网站优化 —— 雅虎 34 条军规...
- python 计算时间重叠_python whilepython计算两个矩形框重合百分比的实例
- Codeforces Round #412 (rated, Div. 2, base on VK Cup 2017 Round 3) A	 Is it rated?
- mysql sql语句面试经典50题_经典sql面试及答案(50)
- Android教程 - - adb工具包的安装
- Awvs 12.x安装及使用教程超详细(包括录制脚本)
- HTML基础入门 第1天课堂笔记
- Exchange2010安装指南