碎碎念
upx
是一直想做的一个小玩意, 名字是随意取的, 我一开始希望它实现的就是一个简单的 http-server
, 所以我采用了我相对熟悉的 nodejs
不过后来写着写着, 发现太好用了, node
配合天衣无缝, 爽歪歪, 现在已经实现了一个简单的 http-server
但是还有打包, 上传 npm
这些操作
直接上链接: https://github.com/luxizhizhong/upx
技术架构
采用了常见的 B-S
不过此时的 S
(Server) 是使用的本地的api
前端上, 采用了 react
+ react-weui
(但还是很丑 /逃)
后端采用了 koa
框架, 我是从 express
过渡过来, 上手很快(尽管 express
都已经忘的差不多了..)
采坑
在开发当中, 遇到了很多坑, 不过基本解决了
- 怎么创建一个单独进程的(http-server)
我把这个问题想的太复杂了, 直接使用 child_process
创建一个单独的进程
const { fork } = require('child_process')
require('colors')
const clear = require('clear')
module.exports = async (port, path)=> {
clear()
let fileName = `${ __dirname }/pullChildServer.js`
const jsServer = fork(
fileName,
[
`port=${port}`,
`path=${path}`
],
{
'stdio': 'ignore', // 父子进程间不建立通道
'detached': true // 让子进程能在父进程退出后继续运行
}
)
jsServer.unref()
return true
}
- 怎么在
Array.map
下使用async
andawait
?
// https://flaviocopes.com/javascript-async-await-array-map
cosnt asyncFn = async item=> {
item.isShow = false
return item
}
cosnt getData = async ()=> {
return await Promise.all(lists.map(item=> asyncFn(item)))
}
开发日志
我会不断更新
2019-11-02
- 完成
http-server