流程
- 抓取数据
- 数据入库
- 启动服务
- 渲染数据
依赖
1 | "dependencies": { |
爬取导入库
read.js进行读取操作
- 通过request抓取了html代码
- cheerio将html转成了dom
- 将需要的内容存在数组(名称|评分|地址|图片|id)
- 返回结果数组并导出read方法
1 | const rp = require('request-promise'); |
db.js 连接数据库,导出promisify query 方法
write.js 将数据写入数据库
index.js为入口函数
1 | (async () => { |
前端展示
使用 ejs 模板,查询到数据后渲染到 index.html 页面。
1 | // 首页路由 |
DEBUG
https://www.npmjs.com/package/debug
1 | set DEBUG=movie:* # debug模块需要先设置 |
项目启动
在 README.md 里
bug
注意这个项目中 async 和 await 的使用,个人觉得非常巧妙,还有下面的 promisify,值得好好学习。
mysql 的 query 方法 promisify 后进行 bind 绑定,以免 this 混乱。
https://stackoverflow.com/questions/44004418/node-js-async-await-using-with-mysql/51690276#51690276
参考