{"id":14989557,"url":"https://github.com/chungchi300/eaglet","last_synced_at":"2025-10-15T17:55:58.546Z","repository":{"id":99062727,"uuid":"118422357","full_name":"chungchi300/eaglet","owner":"chungchi300","description":"最简單直接的 Koa2 的脚手架","archived":false,"fork":false,"pushed_at":"2018-05-24T09:46:12.000Z","size":176,"stargazers_count":118,"open_issues_count":2,"forks_count":6,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-04-19T05:14:30.295Z","etag":null,"topics":["koa2","mysql","nodejs","pm2","sequelize","sqlite"],"latest_commit_sha":null,"homepage":"","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/chungchi300.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2018-01-22T07:33:28.000Z","updated_at":"2024-01-12T03:04:54.000Z","dependencies_parsed_at":null,"dependency_job_id":"24c36cb6-bfce-40bf-92b7-05594633b75f","html_url":"https://github.com/chungchi300/eaglet","commit_stats":{"total_commits":68,"total_committers":2,"mean_commits":34.0,"dds":0.1029411764705882,"last_synced_commit":"5b609e56b1cc4a879458d55f450d5d95214a7946"},"previous_names":[],"tags_count":1,"template":false,"template_full_name":null,"purl":"pkg:github/chungchi300/eaglet","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/chungchi300%2Feaglet","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/chungchi300%2Feaglet/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/chungchi300%2Feaglet/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/chungchi300%2Feaglet/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/chungchi300","download_url":"https://codeload.github.com/chungchi300/eaglet/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/chungchi300%2Feaglet/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":279098056,"owners_count":26102952,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-10-15T02:00:07.814Z","response_time":56,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["koa2","mysql","nodejs","pm2","sequelize","sqlite"],"created_at":"2024-09-24T14:18:33.908Z","updated_at":"2025-10-15T17:55:58.502Z","avatar_url":"https://github.com/chungchi300.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"typescript,type orm,\n\n最简单直接的 Koa2 的脚手架 - **eaglet**\n\n## 哲学\n\n**我不想知道你的哲学，但我想立即开始并完成工作**\n\n* 迅速开发　-　自动热重启服务 + 测试驱动开发模式 + 重置数据库(by cli)\n* 生产就绪　-　有 node 和 npm 马上可以部署,不用安装任何东西\n* 从众 - 80%人会做的设计决定(design decision)和 80%人会使用的库(library)\n* 结构简单　-　 routes + MVC + 中间件(Middleware)\n* 没有魔法 - 可由 app.js 开始 , 25 分钟读懂的代码(易用,易写,易看,易学的车子结构应用和实践,用了对 node js 和 koa2 必有更多的理解)\n\n## 特别之处\n\n1.  没有 babel 配置(Node 9)\n2.  Nodemon 自动热重启服务\n3.  自带会员系统 (可选)(Passport js)\n4.  邮件服务 (Sparkpost)\n5.  对象关系映射(ORM) (Sequelize)\n6.  多个配置(/.env production.json,test.json,development.json)\n7.  koa-router\n\n## 定位\n\n* koa 2 入门至中级䦕发者\n* 1-5 小团队快速开发\n* 小微 IT 企业\n\nP.S\n如果你的开发团队人数大于 10 人且人人都是 koa 大神,eggjs 会是更适合你\n\n## 技术堆栈\n\n1.  Node js\n2.  koa2\n3.  Sequelize\n4.  Mysql/SQlite\n\n## 安装并运行\n\n```\n1. git clone git@github.com:chungchi300/eaglet.git\n//更改 database\n2. src/config/default.js  (default sqlite but suggest mysql in production)\n3. npm i \u0026\u0026 npm run reset \u0026\u0026 npm start\n```\n\n访问\n\n* http://localhost:3000\n* http://localhost:3000/feedback\n\n## 测试服务器\n\n* http://45.76.76.16:3000/\n* http://45.76.76.16:3000/feedback\n\n## 开发模式\n\n文件修改后 nodemon**立即自动重启** Node.js 服务\n\n```\nnpm run start\n```\n\n[![在优酷上观看](https://t4.ftcdn.net/jpg/01/12/56/73/240_F_112567399_fVHoy5kIkNXdDnwCSpaSkDC3wmH9NVCs.jpg)](http://v.youku.com/v_show/id_XMzM0NDQ5MDg1Ng==.html?spm=a2hzp.8253869.0.0)\n\n## 测试驱动开发模式\n\n文件修改后 Jest**立即自动重新运行**所有测试\n\n```\nnpm run test\n```\n\n[![在优酷上观看](https://t4.ftcdn.net/jpg/01/12/56/73/240_F_112567399_fVHoy5kIkNXdDnwCSpaSkDC3wmH9NVCs.jpg)](http://v.youku.com/v_show/id_XMzM0NDQ5NTMwMA==.html?spm=a2hzp.8253869.0.0)\n\n## 线上模式\n\n使用 pm2 是 node 进程管理器,如果 node 进程崩溃**立即自动重启**进程\n\n```\nnpm run production\n```\n\n[![在优酷上观看](https://t4.ftcdn.net/jpg/01/12/56/73/240_F_112567399_fVHoy5kIkNXdDnwCSpaSkDC3wmH9NVCs.jpg)](http://v.youku.com/v_show/id_XMzM0NDQ5ODU3Ng==.html?spm=a2hzp.8253869.0.0)\n\n## 配置\u0026\u0026部署线上\n\n默认配置文件位于 src/config/default.js.\n\n.env 配置会覆盖(override) 默认配置.\n\ne.g\n\n.env/production.json 覆盖 src/config/default.js 配置\n\n## 线上 3000 port 转 80\n\nhttps://stackoverflow.com/questions/16573668/best-practices-when-running-node-js-with-port-80-ubuntu-linode\n\n## 谢谢\n\n使用部分代码和概念于\n\n[17koa2](https://github.com/17koa/koa2-startkit)\n\n[koa2-server](https://github.com/zhongxia245/koa2-server)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fchungchi300%2Feaglet","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fchungchi300%2Feaglet","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fchungchi300%2Feaglet/lists"}