写在最前
最近做个项目,有个需求是PC主机拍照后临时缓存在主机里,反馈给平板,平板的APP收到信息更新新拍照的几张照片,本想着都是本地局域网有毛怕的,直接用window iis 开个web服务好了。所有项目都一个样,等看起来完工的时候了,就开始找小问题,客户这怕那怕不安全的。说iis不安全的...(*#^$(@#&$^XXXX。 拗不过。 想着用python一行命令开一个,又怕到时主机又没有python环境。好在PC主机的程序是electron框架打包的exe,那就直接用node 加个web服务了。感觉快又挺好用的,就单独提出来做成一个工具,供以后本地看html文档也不错。
独立执行程序
代码简单,网上也有很多示意。没兴趣看只想应急用用
截图
代码 (仅供初学爱好者参考哈~)
主文件代码
web.js
'use strict'
console.log('\n提示:没有指定路径参数,使用当前程序所在目录为WEB根目录.\n');
console.log('-:打开CMD命令窗口,运行程序可加参数.');
console.log('1:指定开启WEB服务的目标路径。(如:web d:/xxx/xx)');
console.log('2:默认端口是8080,如要改端口,加第三个参数(如:web d:/xxx/xx 8081)\n');
const fs = require('fs');
const express = require('express');
const path = require('path');
const appExpress = express();
// 指定静态文件目录
const exeDir=process.argv[0];
let oriDir=exeDir.substr(0,exeDir.lastIndexOf('\\'));
let staticDirectory = path.join(oriDir);
// 通过命令传参指定静态文件目录
if(process.argv[2])staticDirectory = path.join(process.argv[2]);
appExpress.use(express.static(staticDirectory));
// 设置默认GET处理程序,返回index.html...
appExpress.get('/', function(req, res) {
if(fs.existsSync(path.join(staticDirectory, 'index.html'))){
res.sendFile(path.join(staticDirectory, 'index.html'));
}
else if(fs.existsSync(path.join(staticDirectory, 'index.htm'))){
res.sendFile(path.join(staticDirectory, 'index.htm'));
}
else if(fs.existsSync(path.join(staticDirectory, 'default.html'))){
res.sendFile(path.join(staticDirectory, 'default.html'));
}
else if(fs.existsSync(path.join(staticDirectory, 'default.htm'))){
res.sendFile(path.join(staticDirectory, 'default.htm'));
}
else if(fs.existsSync(path.join(staticDirectory, 'tour.html'))){
res.sendFile(path.join(staticDirectory, 'tour.html'));
}
});
// 端口,根据命令传参是否赋值
const PORT = process.argv[3]?process.argv[3]:8080;;
const webserve=appExpress.listen(PORT, () => {
console.log(`\n Web服务已启动!\n`);
console.log(' 当前WEB目录:',staticDirectory);
console.log(`\n 浏览地址: http://localhost:${PORT}`);
});
依赖文件
package.json
{
"dependencies": {
"clipboardy": "^2.3.0",
"express": "^4.19.2"
}
}
测试说明:
- 保存以上两个文件在同一目录,确保安装了nodejs 环境后(下载nodejs)
- 在文件所在目录里打开CMD命令窗口,运行 npm i 先安装依赖 。
npm i
- 安装提示结束后。输入 node web 查看效果
node web node web d:\xxx node web d:\xxx 8088
-
觉得麻烦吗? 那就试试这个,先下载安装(点我下载)这个,安装完成后,在你想要查看的html文档目录里,打开CMD 运行以下指令:
python -m http.server 8080
-
然后浏览器里打开 :http://localhost:8080/
写在最后
有效依赖文件是express,直接node 运行只要 安装 express 就行了。 其它依赖可忽略, clipboardy是剪贴板功能,本用来在工具运行后,把当前浏览链接复制到剪贴板的,但是用pkg打包后运行就出错 , 有大佬知道原因嘛?