liuchuan
Version:
I create for my love
31 lines (30 loc) • 1.04 kB
JavaScript
const fs = require('fs')
const path = require('path')
const cp = require('child_process')
const express = require('express')
const os = require('os');
// 创建一个服务实例
const app = express();
// 获取命令行输入端口号 没有默认3000
const port = process.argv[2]?process.argv[2].split('--')[1]:7070;
//将当前命令行的工作目录作为静态资源目录
app.use(express.static(__dirname));
// 编写读取访问路径的中间件
app.use((req,res,next)=>{
// 读取一个模板页面
let dirHtml = fs.readFileSync(path.join(__dirname,'./index.html'),'utf-8')
// 发送渲染好的html到客户端
res.send(dirHtml)
next()
})
app.listen(port,()=>{
// 提示服务开启
process.stdout.write(`server run at https://localhost:${port}\n`)
// 打开浏览器 使用到子进程方法exec
if(os.type() === 'Darwin'){
cp.exec(`open http://localhost:${port}`)
return
}
cp.exec(`start http://localhost:${port}`)
})