单人作业 1400012729 张乐聪(文档/文案我会写在备注后面)
npm install # 安装依赖
node index.js
访问 localhost:3000 查看系统
如果运行有问题,请在群里联系我
- sequelize nodejs 的 ORM 框架
- vuejs 前端框架
- superagent http io工具
- expressjs nodejs 后端框架
- semanticui 前端 ui 框架
- jquery 我也不想用这个,只不过这个和一些 semanticui 的组件要配合着来
- cheerio Fast, flexible, and lean implementation of core jQuery designed specifically for the server.
index.js 项目主入口
public/ 前端网页信息
public/index.html 包含页面信息和 script
getDistance.js 从网站上下载地铁的距离信息
distanceInfo.json 距离信息
getStopLineInfo.js 获取哪一站在哪一条线上
stopLineInfo.json 每条线有哪站的信息
initDb.js 将 distanceInfo.json 和 stopLineInfo.json 的数据导入数据库 metro.sqlite
metro.sqlite 地铁信息数据库
model.js Sequelize 的模型文件
floyd.js 佛洛依德距离算法
testF.js 测试 floyd.js
其他 不需要了解是干什么的
- 完全实现了作业要求
- 提前交,并且在课上进行了展示
- 额外在换乘站做了提醒
- 使用 ajax 交互
- 设计了看起来还算友好的界面
通过北京地铁网站,采集每条地铁线路数据并将其存储到数据库。在浏览器端输入起止站名,可以计算出最短行进路线(通过站包括换乘站等);
实现了上述需求,并多做了一点微小的工作
繁琐的过程
- 下载网站页面
- 用 cheerio 解析页面
- 保存信息为 json 格式
- 将信息导入数据库
- server 启动,从数据库获取距离信息
- 调用 floyd 算法计算距离,将信息保存在内存中
- 每当有请求发来,把信息发回去
- 在前端使用 vuejs 来渲染页面
可以运行node testF.js
来测试,当然了,用来测试的数据是完整的数据
参见《如何运行》章节