1、 企业级 Node 框架天猪(atian25)阿里游戏-前端组eggNode.js in Alibaba Grouphttp:/ Java-基础设施 Node-灵活,快速迭代Why Node?JavaScriptThe Worlds BestProgramming Languagehttp:/ a jokeNode应用Node开发者越来越多But基建缺失重复建设各自为战Node.js 开发者越来越多,但是真正涉足基础技术的人员还是那么少,那么分散出现非常多的重复性技术问题和重复建设非常多不合理地使用 Node 进行 Web 开发,也没有一套统一的规范可以参考越来越多的 Node 应用出现,需要
2、保证高可用我们遇到什么痛点?阿里是业界最早的一批使用 node 来做线上大流量应用的公司201120132015.112016.09egg 正式开源,JSConf China 2016 2016.05广泛使用在绝大部分阿里的前端 node 应用egg 第一个内部版本,跨部门闭关共建chair,支付宝基础 Web 框架,egg 前身https:/eggjs.orgzen mode(2015年11月,杭州,闭关开发)HistoryFramework Specifications没有规矩不成方圆,制定了一套完善的 Web 应用规范 约定涵盖了 Web 开发的通用能力,规范了项目的加载机制和目录结构$
3、npm install egg-init-g$egg-init-type simple showcase$cd showcase$npm install$npm run dev$open http:/localhost:7001QuickStartQuickStart/app_root/app/controller/news.jsexports.list=function*newsListController()const hackerNews=this.service.hackerNews;const idList=yield hackerNews.getTopStories();const
4、 newsList=yield idList.map(id=hackerNews.getItem(id);yield this.render(news/list.tpl,list:newsList);QuickStart/app_root/app/router.jsmodule.exports=app=app.get(/,app.controller.home);app.get(/news,app.controller.news.list);app.get(/news/item/:id,app.controller.news.detail);QuickStart/app_root/app/se
5、rvice/news.jsmodule.exports=app=(/*HackerNews Api Service*/class HackerNews extends app.Service*getItem(id)const host=this.ctx.app.config.news.config.serverUrl;const url=$this.serverUrl/item/$id.json;const result=yield this.ctx.curl(url,dataType:json);return result.data;*getTopStories().QuickStart/a
6、pp_root/config/config.default.jsexports.news=pageSize:30,serverUrl:https:/hacker- MVC 而已?强大+灵活的插件机制支撑了生态共建,又可以在不同业务场景下灵活定制实现差异化.专业的事交给专业的人,各自聚焦在各自的专业领域核心功能高度插件化egg-view-nunjucks/egg-security/QuickStart/app_root/config/plugin.jsexports.view=enable:true,package:egg-view-nunjucks,;/plugin_root/package.