{"id":20066848,"url":"https://github.com/tedqb/node-res","last_synced_at":"2026-04-10T11:02:05.539Z","repository":{"id":71515318,"uuid":"188638452","full_name":"tedQB/node-res","owner":"tedQB","description":"一个基于express+mongoose+mongodb 生成 restfulAPI 数据架构项目，供多终端使用","archived":false,"fork":false,"pushed_at":"2024-05-24T14:50:47.000Z","size":159,"stargazers_count":1,"open_issues_count":1,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2026-01-03T22:46:14.396Z","etag":null,"topics":["es6","express","mongodb","nodejs"],"latest_commit_sha":null,"homepage":"","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/tedQB.png","metadata":{"files":{"readme":"readme.md","changelog":null,"contributing":null,"funding":null,"license":null,"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":"2019-05-26T04:07:58.000Z","updated_at":"2023-03-08T16:18:44.000Z","dependencies_parsed_at":"2025-01-12T23:23:11.313Z","dependency_job_id":"b51a3d98-234b-483d-8f26-fd743fef62c7","html_url":"https://github.com/tedQB/node-res","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/tedQB/node-res","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tedQB%2Fnode-res","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tedQB%2Fnode-res/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tedQB%2Fnode-res/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tedQB%2Fnode-res/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/tedQB","download_url":"https://codeload.github.com/tedQB/node-res/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tedQB%2Fnode-res/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31639524,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-10T07:40:12.752Z","status":"ssl_error","status_checked_at":"2026-04-10T07:40:11.664Z","response_time":98,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"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":["es6","express","mongodb","nodejs"],"created_at":"2024-11-13T14:00:04.268Z","updated_at":"2026-04-10T11:02:05.521Z","avatar_url":"https://github.com/tedQB.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"\n# About\n\n\n外卖APP nodejs-restful 接口项目\n\n整个项目分为两部分：前台项目接口、后台管理接口，共60多个。\n涉及登陆、注册、添加商品、商品展示、筛选排序、购物车、下单、用户中心等，构成一个完整的流程。\n\n项目中package.json 的nodejs模块均为目前最新版，向后兼容，使用下来只有config-lite v2版本模块于v1版本区别较大之外，其余没有遇到很大问题。\n\n\n\n## 技术栈\n\nnodejs + express + mongodb + mongoose + es6/7 + vue + element-ui\n\n\n## 项目运行\n\n```\n项目运行之前，请确保系统已经安装以下应用\n1、node (6.0 及以上版本)\n2、mongodb (开启状态)\n3、GraphicsMagick (裁切图片)\n```\n\n```\n\ngit clone git@github.com:tedQB/node-res.git  \n\ncd node-res\n\nnpm install 或 yarn(推荐)\n\nnpm run dev\n\n访问: http://localhost:3000\n\n```\n\n\n## API接口文档\n\n## 项目布局\n\n```\n.\n├── InitData                        初始化数据\n│   ├── activity.js                 餐馆活动\n│   ├── category.js                 餐馆分类\n│   ├── cities.js                   城市列表\n│   ├── delivery.js                 配送方式\n│   ├── entry.js                    食品分类\n│   ├── explain.js                  解释说明\n│   ├── hongbao.js                  红包\n│   ├── payments.js                 支付方式\n│   ├── rate.js                     评论\n│   └── remark.js                   备注列表\n├── config                          运行配置\n│   ├── default.js                  默认配置\n│   └── development.js              开发环境\n├── controller                      处理中心，负责路由及数据库的具体操作\n│   ├── admin\n│   │   └── admin.js                管理员\n│   ├── bos\n│   ├── eus\n│   ├── member\n│   │   └── vipcart.js              会员卡\n│   ├── payapi\n│   ├── promotion\n│   │   └── hongbao.js              红包\n│   ├── shopping\n│   │   ├── category.js             餐馆分类\n│   │   ├── food.js                 食品\n│   │   └── shop.js                 餐馆\n│   ├── statis\n│   │   └── statis.js               数据统计\n│   ├── ugc\n│   │   └── rating.js               评论\n│   ├── v1\n│   │   ├── address.js              收获地址\n│   │   ├── captchas.js             验证码\n│   │   ├── carts.js                购物车\n│   │   ├── cities.js               城市列表\n│   │   ├── order.js                订单\n│   │   ├── remark.js               备注\n│   │   └── search.js               搜索\n│   ├── v2\n│   │   ├── entry.js                食品分类\n│   │   └── user.js                 用户信息\n│   ├── v3\n│   │   └── explain.js              解析说明\n│   └── v4\n├── logs                            日志文件\n├── middlewares                     中间件\n│   ├── check.js                    权限验证    \n│   └── statistic.js                API数据统计\n├── models                          模型(数据库)\n│   ├── admin\n│   │   └── admin.js                管理员模型\n│   ├── bos\n│   │   └── order.js                订单模型\n│   ├── eus\n│   ├── ids.js\n│   ├── member\n│   ├── payapi\n│   ├── promotion\n│   │   └── hongbao.js              红包模型\n│   ├── shopping\n│   │   ├── activity.js             餐馆活动模型\n│   │   ├── category.js             餐馆分类模型\n│   │   ├── delivery.js             配送方式模型\n│   │   ├── food.js                 食品模型\n│   │   └── shop.js                 餐馆模型\n│   ├── statis\n│   │   └── statis.js               数据统计模型\n│   ├── ugc\n│   │   └── rating.js               评论模型\n│   ├── v1\n│   │   ├── address.js              收获地址模型\n│   │   ├── cart.js                 购物车模型\n│   │   ├── cities.js               城市列表模型\n│   │   ├── payments.js             付款方式模型\n│   │   └── remark.js               备注模型\n│   ├── v2\n│   │   ├── entry.js                食品分类模型\n│   │   ├── user.js                 用户模型\n│   │   └── userInfo.js             用户信息模型\n│   ├── v3\n│   │   └── explain.js              解释说明模型\n│   └── v4\n├── mongodb                         连接数据库\n│   └── db.js\n├── prototype                       基础功能Class\n│   ├── addressComponent.js         与腾讯、百度地图API相关的Class\n│   └── baseComponent.js            底层类\n├── public                          静态资源目录\n├── routes                          路由配置\n│   ├── admin.js                    管理员\n│   ├── bos.js                      订单\n│   ├── eus.js                      用户\n│   ├── index.js                    路由配置主文件\n│   ├── member.js                   会员卡\n│   ├── payapi.js                   付款\n│   ├── promotion.js                红包\n│   ├── shopping.js                 餐馆、食品、Menu\n│   ├── statis.js                   数据统计\n│   ├── ugc.js                      评论\n│   ├── v1.js                       城市、用户、收获地址\n│   ├── v2.js                       登陆、退出\n│   ├── v3.js                       解释说明\n│   └── v4.js                       餐馆\n├── screenshots                     项目截图\n├── views   \n├── .babelrc \n├── .gitignore\n├── API.md                          接口文档\n├── app.js                          基础配置\n├── COPYING                         GPL协议\n├── index.js                        入口文件\n├── package.json\n├── README.md                  \n.\n```\n\n# node使用感受\n\n1. node特点\n\n* 它是一个Javascript运行环境，依赖于Chrome V8引擎进行代码解释\n\n* 事件驱动\n\n* 非阻塞I/O\n\n* 轻量、可伸缩，适于实时数据交互应用\n\n* 单进程，单线程\n\n2. 开发体验\n\n* nodejs 对比其他后端开发体系，如Python，PHP等，在restful-api开发上胜出一筹，但是和mysql结合开发不如上述两者来的快。\n\n* 代码复杂度上，nodejs要高于后面两者。\n\n* React/Vue + nodejs express架构上，前端一套router配置，后端一套router配置的架构方法已经成为主流\n   但nodejs用来做后端肯定不会成为主流，原因是nodejs本身存在很多问题。\n   比如后端一个control调用必须try..catch, npm包质量不齐，一个小项目都几百兆的node_modules\n   api如果返回不到想要的结果，要从前端查到后端然后查到数据库，开发效率不敢保证。\n   \n\n3. 适合NodeJS的场景\n\n* RESTful API\n\n这是NodeJS最理想的应用场景，结合非关系型数据库mongodb,moogose的Schema能够快速设计出前端想要的jsonp接口。\n其他语言如果用mysql还要拼装数据。。\n\n* 统一Web应用的UI层\n\n适合服务端渲染，前端后端全部都用js的项目，在Next.js等服务端渲染框架使用。\n\n* 大量Ajax请求的应用\n\n用来做前后端分离，后端只提供数据，然后所有的关键业务逻辑都封装成REST调用，上层只需要考虑如何用这些REST接口构建具体的应用。\n\n总而言之，NodeJS适合运用在高并发、I/O密集、少量业务逻辑的场景。\n\n4. 缺点，不适合地方\n\n* 不适合CPU密集型应用；CPU密集型应用给Node带来的挑战主要是：\n  由于JavaScript单线程的原因，如果有长时间运行的计算（比如大循环），将会导致CPU时间片不能释放，使得后续I/O无法发起；\n\n  解决方案：分解大型运算任务为多个小任务，使得运算能够适时释放，不阻塞I/O调用的发起；\n\n* 只支持单核CPU，不能充分利用CPU\n\n* 可靠性低，一旦代码某个环节崩溃，整个系统都崩溃 原因：单进程，单线程\n\n* 解决方案：（1）Nnigx反向代理，负载均衡，开多个进程，绑定多个端口；\n\n　　　　　　（2）开多个进程监听同一个端口，使用cluster模块；\n\n* 开源组件库质量参差不齐，更新快，向下不兼容\n\n* Debug不方便，错误没有stack trace\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftedqb%2Fnode-res","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ftedqb%2Fnode-res","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftedqb%2Fnode-res/lists"}