本项目源自
iwillwen/duel-living
在此感谢项目原作者小问
Duel Living 的定位是一个非常简单的赛事文字直播平台,现实世界中也已经有很多类似的产品,Duel Living 便以这样的一种产品形式演示如何利用 ES2015 标准中的新特性,更加简单方便地实现项目需求。——《实战 ES2015》 P211
Duel Living 作为《实战 ES2015》 中的实践案例,随着时间的推移,案例中使用的 Node.js
Koa
Vue
框架和 LeanCloud SDK
功能有较大的更新,部分 API
已过时。
该项目在源代码上修复了这些问题,遵守作者原意:
- 使用
Koa2
作为后端 - 使用 JavaScript
ES2015
语法 - 选用
LeanCloud
提供的开箱即用的数据存储方案 - 着重在业务逻辑的编写,无需关心应用开发环境、部署等问题
当然也有一些遗留问题
项目数据存储依赖 LeanCloud 提供的 LeanStorage 服务,在开发前预先创建基础数据,便于后面调试。
- 创建 LeanCloud 帐号
- 创建开发版应用(建议华北区)
- 创建数据表 (Class):
- Duel
- Message
- Player 添加列
title
- 使用 API 在线测试工具 新建默认管理员用户:
{
username: 'admin',
password: 'admin',
nickname: 'admin'
}
先安装 Node.js 运行环境和 LeanCloud 命令行工具,克隆项目:
git clone https://github.com/409915016/duel-living.git
安装依赖:
yarn install
登录 LeanCloud 帐号并关联当前应用:
lean login
lean switch
运行项目:
lean up
访问默认的 http://localhost:3000
和 http://localhost:3000/admin
在云引擎中将体验实例 Web 组的 Web 主机域名 设置为你喜爱的域名 re-duel-living.leanapp.cn
使用 lean deploy
命令可上传至实例中:
E:\project>lean deploy
[INFO] Current CLI tool version: 0.20.1
[INFO] Retrieving app info ...
[INFO] Preparing to deploy mather(*********) to region: cn group: web production
[INFO] Node.js runtime detected
[INFO] Uploading file 743.85 KiB / 743.85 KiB 100.00% 1s
[REMOTE] 开始构建 20190616-205743
[REMOTE] 正在下载应用代码 ...
[REMOTE] 正在解压缩应用代码 ...
[REMOTE] 运行环境:nodejs
[REMOTE] 正在下载和安装依赖项 ...
[REMOTE] 存储镜像到仓库(138.41MB)...
[REMOTE] [Node.js] 使用 Node.js v10.16.0, Node SDK 3.4.0, JavaScript SDK 3.13.2
[REMOTE] 版本 20190616-205743 构建完成
[REMOTE] 开始部署 20190616-205743 到 web1
[REMOTE] 正在创建新实例 ...
[REMOTE] 正在启动新实例 ...
[REMOTE] 实例启动成功:{"runtime":"nodejs-v10.16.0","version":"3.4.0"}
[REMOTE] 正在更新云函数信息 ...
[REMOTE] 部署完成:1 个实例部署成功
[INFO] Deleting temporary files
由于开发版应用分配的是免费体验实例,存在休眠策略和有限的硬件资源。
我建议读者在本地调试中学习,会获得较好的体验。
由于未对 Node.js 有深入的了解,兼容推进过程中也遇到了一些暂时无解问题,未能按照作者原意: