当前位置: 首页>編程日記>正文

node 请求内网_Nodejs轻松搭建局域网服务器

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”)。

自此局域网服务器搭建完成。

转载请注明出处,欢迎分享


https://www.fengoutiyan.com/post/13838.html

相关文章:

  • node服务器的搭建和使用
  • nodejs搭建服务器外网访问
  • nodejs路由
  • nodejs部署到服务器
  • 局域网怎么连接外网
  • 局域网 广域网
  • 局域网组成
  • 哪些属于局域网
  • 鏡像模式如何設置在哪,圖片鏡像操作
  • 什么軟件可以把圖片鏡像翻轉,C#圖片處理 解決左右鏡像相反(旋轉圖片)
  • 手機照片鏡像翻轉,C#圖像鏡像
  • 視頻鏡像翻轉軟件,python圖片鏡像翻轉_python中鏡像實現方法
  • 什么軟件可以把圖片鏡像翻轉,利用PS實現圖片的鏡像處理
  • 照片鏡像翻轉app,java實現圖片鏡像翻轉
  • 什么軟件可以把圖片鏡像翻轉,python圖片鏡像翻轉_python圖像處理之鏡像實現方法
  • matlab下載,matlab如何鏡像處理圖片,matlab實現圖像鏡像
  • 圖片鏡像翻轉,MATLAB:鏡像圖片
  • 鏡像翻轉圖片的軟件,圖像處理:實現圖片鏡像(基于python)
  • canvas可畫,JavaScript - canvas - 鏡像圖片
  • 圖片鏡像翻轉,UGUI優化:使用鏡像圖片
  • Codeforces,CodeForces 1253C
  • MySQL下載安裝,Mysql ERROR: 1253 解決方法
  • 勝利大逃亡英雄逃亡方案,HDU - 1253 勝利大逃亡 BFS
  • 大一c語言期末考試試題及答案匯總,電大計算機C語言1253,1253《C語言程序設計》電大期末精彩試題及其問題詳解
  • lu求解線性方程組,P1253 [yLOI2018] 扶蘇的問題 (線段樹)
  • c語言程序設計基礎題庫,1253號C語言程序設計試題,2016年1月試卷號1253C語言程序設計A.pdf
  • 信奧賽一本通官網,【信奧賽一本通】1253:抓住那頭牛(詳細代碼)
  • c語言程序設計1253,1253c語言程序設計a(2010年1月)
  • 勝利大逃亡英雄逃亡方案,BFS——1253 勝利大逃亡
  • 直流電壓測量模塊,IM1253B交直流電能計量模塊(艾銳達光電)
  • c語言程序設計第三版課后答案,【渝粵題庫】國家開放大學2021春1253C語言程序設計答案
  • 18轉換為二進制,1253. 將數字轉換為16進制
  • light-emitting diode,LightOJ-1253 Misere Nim
  • masterroyale魔改版,1253 Dungeon Master
  • codeformer官網中文版,codeforces.1253 B
  • c語言程序設計考研真題及答案,2020C語言程序設計1253,1253計算機科學與技術專業C語言程序設計A科目2020年09月國家開 放大學(中央廣播電視大學)
  • c語言程序設計基礎題庫,1253本科2016c語言程序設計試題,1253電大《C語言程序設計A》試題和答案200901
  • 肇事逃逸車輛無法聯系到車主怎么辦,1253尋找肇事司機