当前位置:首页>学习笔记>NodeJS+Koa学习笔记(0-4)Node.js 项目目录结构设计

NodeJS+Koa学习笔记(0-4)Node.js 项目目录结构设计

  • 2026-05-09 13:21:37
NodeJS+Koa学习笔记(0-4)Node.js 项目目录结构设计

NodeJS服务目录结构设计

对于一个已经拥有了node项目初始化经验,以及掌握了node与npm的基本命令的你,了解以下node项目的目录结构设计很有必要。

阅读前嘱托一句,建议参考本文的目录结构设计思想,不要照搬照抄,设计一个受自己掌控、符合自己习惯的目录结构才是最优解。

引用文件路径标识符处理

参考官方文档说明https://node.org.cn/docs/latest/api/packages.html#subpath-imports

优先处理文件路径标识符问题,主要为了方便在设计目录结构时,可以在互相引用时,不用存在使用绝对路径/相对路径的烦恼

// package.json{"imports":{"#root/*":"./*","#src/*":"./src/*"},}

回答为什么使用#而非是@的原因,首先官方强制要求要使用#,目的是为了与外部包区分开

所以在nodejs后端项目内使用#,在前端项目(webpack/vite/gulp)中使用@,要记住区分

后端项目目录结构设计

下面是我初步形成的目录结构,供大家参考:

node-js-koa/├── package.json                          // npm 项目描述文件,定义依赖、脚本和项目元数据├── README.md                             // 中文项目说明文档├── README.en.md                          // 英文项目说明文档(本文档)├── LICENSE                               // 开源许可证├── .gitignore                            // Git 忽略规则配置├── .env.development                      // 开发环境环境变量配置├── .env.preview                          // 预览环境环境变量配置├── .env.production                       // 生产环境环境变量配置├── main.js                               // 应用主入口,负责启动热更新 watcher 加载环境变量、初始化数据库、注册中间件和路由、启动 HTTP 服务├── db_sqlite/                            // SQLite 数据库目录│   ├── database.sqlite                   // SQLite 数据库文件│   ├── init-db.js                        // 数据库初始化脚本│   └── backups/                          // 数据库备份目录│       ├── database/                     // 数据库文件备份│       ├── sql/                          // SQL 初始化脚本备份│       ├── README.md                     // 备份说明文档│       └── backup-db.sh                  // 数据库备份 Shell 脚本├── docs/                                 // 项目文档目录│   └── apifox/                           // Apifox 接口文档│   └── postman/                          // postman 接口文档├── plugin/                               // 插件目录│   ├── hot-reload/                       // 热更新插件│   │   ├── index.js                      // 热更新核心逻辑,文件监听、进程管理│   │   ├── client.js                     // 热更新客户端脚本,注入浏览器实现自动刷新│   │   ├── hot-reload-middleware.js      // 热更新 Koa 中间件,提供客户端脚本和版本号接口│   │   ├── version.js                    // 热更新版本号管理│   │   ├── process-on-event.js           // 进程事件处理│   │   └── readme.md                     // 热更新插件说明│   └── llm-sdk/                          // LLM SDK 插件目录│       ├── openai/                       // OpenAI API 封装│       ├── deepseek/                     // DeepSeek API 封装│       └── anthropic/                    // Anthropic API 封装├── public/                               // 静态资源目录,直接对外提供文件访问│   ├── index.html                        // 前端应用入口页面│   ├── assets/                           // 静态资源文件(CSS、JS、图片等)│   └── database/                         // 数据库工具页面│       ├── sql-tool.html                 // SQL 在线执行工具页面│       └── readme.md                     // 数据库工具说明├── src/                                  // 核心业务代码目录│   ├── config/                           // 配置文件目录│   │   ├── database.config.js            // 数据库连接配置│   │   ├── jwt.config.js                 // JWT 认证配置│   │   ├── logger.config.js              // 日志配置│   │   ├── permissions.config.js         // 权限配置数据,用于 /userInfo 接口返回前端权限参考数据│   │   ├── routes.config.js              // 路由配置数据,用于 /userInfo 接口返回前端菜单路由参考数据│   │   └── redis.config.js               // Redis 连接配置│   ├── constants/                        // 常量定义目录│   │   └── code.js                       // 业务状态码常量│   ├── routes/                           // 路由定义目录,只做路径映射│   │   ├── index.js                      // 路由统一入口,聚合所有模块路由│   │   ├── login.route.js                // 登录认证路由│   │   ├── user.route.js                 // 用户管理路由│   │   ├── role.route.js                 // 角色管理路由│   │   ├── menu.route.js                 // 菜单管理路由│   │   ├── dept.route.js                 // 部门管理路由│   │   ├── post.route.js                 // 岗位管理路由│   │   ├── dict.route.js                 // 字典类型路由│   │   ├── dict-data.route.js            // 字典数据路由│   │   ├── notice.route.js               // 通知公告路由│   │   ├── sql.route.js                  // SQL 执行路由│   │   ├── version.route.js              // 版本信息路由│   │   ├── example.route.js              // 示例路由│   │   └── llm-route.js                  // LLM 大模型路由│   ├── controllers/                      // 控制器目录,面向 HTTP 请求与响应│   │   ├── login.controller.js           // 登录认证控制器│   │   ├── user.controller.js            // 用户管理控制器│   │   ├── role.controller.js            // 角色管理控制器│   │   ├── menu.controller.js            // 菜单管理控制器│   │   ├── dept.controller.js            // 部门管理控制器│   │   ├── post.controller.js            // 岗位管理控制器│   │   ├── dict.controller.js            // 字典类型控制器│   │   ├── dict-data.controller.js       // 字典数据控制器│   │   ├── notice.controller.js          // 通知公告控制器│   │   ├── sql.controller.js             // SQL 执行控制器│   │   ├── version.controller.js         // 版本信息控制器│   │   └── example.controller.js         // 示例控制器│   ├── services/                         // 业务逻辑层目录,承载核心业务规则│   │   ├── login.service.js              // 登录认证业务逻辑│   │   ├── user.service.js               // 用户管理业务逻辑│   │   ├── role.service.js               // 角色管理业务逻辑│   │   ├── menu.service.js               // 菜单管理业务逻辑│   │   ├── dept.service.js               // 部门管理业务逻辑│   │   ├── post.service.js               // 岗位管理业务逻辑│   │   ├── dict.service.js               // 字典类型业务逻辑│   │   ├── dict-data.service.js          // 字典数据业务逻辑│   │   ├── notice.service.js             // 通知公告业务逻辑│   │   ├── sql.service.js                // SQL 执行业务逻辑│   │   ├── version.service.js            // 版本信息业务逻辑│   │   └── example.service.js            // 示例业务逻辑│   ├── dao/                              // 数据访问对象目录,面向数据读写│   │   ├── base.dao.js                   // 基础 DAO 封装,提供通用 CRUD 方法│   │   ├── login.dao.js                  // 登录认证数据访问│   │   ├── user.dao.js                   // 用户管理数据访问│   │   ├── role.dao.js                   // 角色管理数据访问│   │   ├── menu.dao.js                   // 菜单管理数据访问│   │   ├── dept.dao.js                   // 部门管理数据访问│   │   ├── post.dao.js                   // 岗位管理数据访问│   │   ├── dict.dao.js                   // 字典类型数据访问│   │   ├── dict-data.dao.js              // 字典数据数据访问│   │   ├── notice.dao.js                 // 通知公告数据访问│   │   ├── sql.dao.js                    // SQL 执行数据访问│   │   ├── version.dao.js                // 版本信息数据访问│   │   └── example.dao.js                // 示例数据访问│   ├── middlewares/                      // 中间件目录,处理通用横切逻辑│   │   ├── auth.js                       // JWT 认证中间件│   │   ├── cors.js                       // 跨域处理中间件│   │   ├── error.js                      // 全局异常处理中间件│   │   ├── logger.js                     // 请求日志中间件│   │   ├── koa.start.js                  // Koa 启动信息中间件│   │   ├── process-events.js             // 进程事件监听中间件│   │   ├── redirectDefaultHtml.js        // 默认页面重定向中间件│   │   ├── snake_case-to-cameCase.js     // 请求/响应字段命名转换中间件(snake_case 转 camelCase)│   │   ├── static-service.js             // 静态文件服务中间件│   │   └── readme.md                     // 中间件说明文档│   ├── validators/                       // 请求参数校验目录│   │   └── login.js                      // 登录请求参数校验│   └── utils/                            // 工具函数目录,保持纯粹不依赖业务上下文│       ├── browser.js                    // 浏览器操作工具(自动打开、检测已有标签页刷新)│       ├── captcha.js                    // 验证码生成工具│       ├── sm4.js                        // SM4 国密算法工具│       ├── file-url.js                   // 文件 URL 处理工具│       └── utils.js                      // 通用工具函数集合└── test/                                 // 测试目录

此目录请求链路说明

推荐的请求处理链路:

Request  -> routes  -> middlewares  -> controllers  -> services  -> dao  -> sqlite  -> Response

各核心层设计原则:

  1. 1. routes (API路由)只做路径映射,不写复杂业务逻辑。
  2. 2. middlewares (中间件)处理通用横切逻辑,不绑定具体业务流程。
  3. 3. controllers (控制器)面向 HTTP 请求与响应,不直接承载复杂业务规则。
  4. 4. services (业务服务)面向业务用例,是后端项目的主要业务承载层。
  5. 5. dao (sql语句编写,数据库操作)面向数据读写,避免数据访问细节泄漏到控制层。
  6. 6. utils (公用函数)保持纯粹,不依赖具体业务上下文。
  7. 7. config (项目关键配置)独立支撑项目的关键配置,如:db、log、redis等
  8. 8. constants (项目固定常量) 只对项目公用的常量进行统一管理,如:code、msg等
  9. 9. validators (项目公用校验) 单独处理项目内的公用校验函数,一切需要校验的参数形式都在此目录进行管理

创建基础目录

可以使用下方命令,在项目根目录执行,快速创建结构:

创建目录

mkdir -p db_sqlite/backups/databasemkdir -p db_sqlite/backups/sqlmkdir -p docs/apifoxmkdir -p docs/postmanmkdir -p plugin/hot-reloadmkdir -p plugin/llm-sdk/openaimkdir -p plugin/llm-sdk/deepseekmkdir -p plugin/llm-sdk/anthropicmkdir -p public/assetsmkdir -p public/databasemkdir -p src/configmkdir -p src/constantsmkdir -p src/routesmkdir -p src/controllersmkdir -p src/servicesmkdir -p src/daomkdir -p src/middlewaresmkdir -p src/validatorsmkdir -p src/utilsmkdir -p test

创建文件

touch package.jsontouch README.mdtouch README.en.mdtouch LICENSEtouch .gitignoretouch .env.developmenttouch .env.previewtouch .env.productiontouch main.jstouch db_sqlite/init-db.jstouch db_sqlite/backups/README.mdtouch db_sqlite/backups/backup-db.shtouch plugin/hot-reload/index.jstouch plugin/hot-reload/client.jstouch plugin/hot-reload/hot-reload-middleware.jstouch plugin/hot-reload/version.jstouch plugin/hot-reload/process-on-event.jstouch plugin/hot-reload/readme.mdtouch public/index.htmltouch public/database/sql-tool.htmltouch public/database/readme.mdtouch src/config/database.config.jstouch src/config/jwt.config.jstouch src/config/logger.config.jstouch src/config/permissions.config.jstouch src/config/routes.config.jstouch src/config/redis.config.jstouch src/constants/code.jstouch src/routes/index.jstouch src/routes/login.route.jstouch src/routes/user.route.jstouch src/routes/role.route.jstouch src/routes/menu.route.jstouch src/routes/dept.route.jstouch src/routes/post.route.jstouch src/routes/dict.route.jstouch src/routes/dict-data.route.jstouch src/routes/notice.route.jstouch src/routes/sql.route.jstouch src/routes/version.route.jstouch src/routes/example.route.jstouch src/routes/llm-route.jstouch src/controllers/login.controller.jstouch src/controllers/user.controller.jstouch src/controllers/role.controller.jstouch src/controllers/menu.controller.jstouch src/controllers/dept.controller.jstouch src/controllers/post.controller.jstouch src/controllers/dict.controller.jstouch src/controllers/dict-data.controller.jstouch src/controllers/notice.controller.jstouch src/controllers/sql.controller.jstouch src/controllers/version.controller.jstouch src/controllers/example.controller.jstouch src/services/login.service.jstouch src/services/user.service.jstouch src/services/role.service.jstouch src/services/menu.service.jstouch src/services/dept.service.jstouch src/services/post.service.jstouch src/services/dict.service.jstouch src/services/dict-data.service.jstouch src/services/notice.service.jstouch src/services/sql.service.jstouch src/services/version.service.jstouch src/services/example.service.jstouch src/dao/base.dao.jstouch src/dao/login.dao.jstouch src/dao/user.dao.jstouch src/dao/role.dao.jstouch src/dao/menu.dao.jstouch src/dao/dept.dao.jstouch src/dao/post.dao.jstouch src/dao/dict.dao.jstouch src/dao/dict-data.dao.jstouch src/dao/notice.dao.jstouch src/dao/sql.dao.jstouch src/dao/version.dao.jstouch src/dao/example.dao.jstouch src/middlewares/auth.jstouch src/middlewares/cors.jstouch src/middlewares/error.jstouch src/middlewares/logger.jstouch src/middlewares/koa.start.jstouch src/middlewares/process-events.jstouch src/middlewares/redirectDefaultHtml.jstouch src/middlewares/snake_case-to-cameCase.jstouch src/middlewares/static-service.jstouch src/middlewares/readme.mdtouch src/validators/login.jstouch src/utils/browser.jstouch src/utils/captcha.jstouch src/utils/sm4.jstouch src/utils/file-url.jstouch src/utils/utils.js

结语

由于我也是刚刚开始学习nodejs,所以兄弟们不要完全照搬,即拿即用不是我发布这篇文章的目的,我始终认为思想才是一切的源头,我对此项目的目录结构设计思想才是我要表达给大家参考的

就如同我在往期文章中,比较有代表性的vue组件封装思想、react组件封装思想,都是为了向大家展示我的封装思想、设计思想

最后,谢谢大家的耐心阅读

最新文章

随机文章

基本 文件 流程 错误 SQL 调试
  1. 请求信息 : 2026-05-09 16:32:28 HTTP/2.0 GET : https://67808.cn/a/487237.html
  2. 运行时间 : 0.097308s [ 吞吐率:10.28req/s ] 内存消耗:4,511.27kb 文件加载:140
  3. 缓存信息 : 0 reads,0 writes
  4. 会话信息 : SESSION_ID=3c945b414faae6eef034883c2f28efb7
  1. /yingpanguazai/ssd/ssd1/www/no.67808.cn/public/index.php ( 0.79 KB )
  2. /yingpanguazai/ssd/ssd1/www/no.67808.cn/vendor/autoload.php ( 0.17 KB )
  3. /yingpanguazai/ssd/ssd1/www/no.67808.cn/vendor/composer/autoload_real.php ( 2.49 KB )
  4. /yingpanguazai/ssd/ssd1/www/no.67808.cn/vendor/composer/platform_check.php ( 0.90 KB )
  5. /yingpanguazai/ssd/ssd1/www/no.67808.cn/vendor/composer/ClassLoader.php ( 14.03 KB )
  6. /yingpanguazai/ssd/ssd1/www/no.67808.cn/vendor/composer/autoload_static.php ( 4.90 KB )
  7. /yingpanguazai/ssd/ssd1/www/no.67808.cn/vendor/topthink/think-helper/src/helper.php ( 8.34 KB )
  8. /yingpanguazai/ssd/ssd1/www/no.67808.cn/vendor/topthink/think-validate/src/helper.php ( 2.19 KB )
  9. /yingpanguazai/ssd/ssd1/www/no.67808.cn/vendor/topthink/think-orm/src/helper.php ( 1.47 KB )
  10. /yingpanguazai/ssd/ssd1/www/no.67808.cn/vendor/topthink/think-orm/stubs/load_stubs.php ( 0.16 KB )
  11. /yingpanguazai/ssd/ssd1/www/no.67808.cn/vendor/topthink/framework/src/think/Exception.php ( 1.69 KB )
  12. /yingpanguazai/ssd/ssd1/www/no.67808.cn/vendor/topthink/think-container/src/Facade.php ( 2.71 KB )
  13. /yingpanguazai/ssd/ssd1/www/no.67808.cn/vendor/symfony/deprecation-contracts/function.php ( 0.99 KB )
  14. /yingpanguazai/ssd/ssd1/www/no.67808.cn/vendor/symfony/polyfill-mbstring/bootstrap.php ( 8.26 KB )
  15. /yingpanguazai/ssd/ssd1/www/no.67808.cn/vendor/symfony/polyfill-mbstring/bootstrap80.php ( 9.78 KB )
  16. /yingpanguazai/ssd/ssd1/www/no.67808.cn/vendor/symfony/var-dumper/Resources/functions/dump.php ( 1.49 KB )
  17. /yingpanguazai/ssd/ssd1/www/no.67808.cn/vendor/topthink/think-dumper/src/helper.php ( 0.18 KB )
  18. /yingpanguazai/ssd/ssd1/www/no.67808.cn/vendor/symfony/var-dumper/VarDumper.php ( 4.30 KB )
  19. /yingpanguazai/ssd/ssd1/www/no.67808.cn/vendor/topthink/framework/src/think/App.php ( 15.30 KB )
  20. /yingpanguazai/ssd/ssd1/www/no.67808.cn/vendor/topthink/think-container/src/Container.php ( 15.76 KB )
  21. /yingpanguazai/ssd/ssd1/www/no.67808.cn/vendor/psr/container/src/ContainerInterface.php ( 1.02 KB )
  22. /yingpanguazai/ssd/ssd1/www/no.67808.cn/app/provider.php ( 0.19 KB )
  23. /yingpanguazai/ssd/ssd1/www/no.67808.cn/vendor/topthink/framework/src/think/Http.php ( 6.04 KB )
  24. /yingpanguazai/ssd/ssd1/www/no.67808.cn/vendor/topthink/think-helper/src/helper/Str.php ( 7.29 KB )
  25. /yingpanguazai/ssd/ssd1/www/no.67808.cn/vendor/topthink/framework/src/think/Env.php ( 4.68 KB )
  26. /yingpanguazai/ssd/ssd1/www/no.67808.cn/app/common.php ( 0.03 KB )
  27. /yingpanguazai/ssd/ssd1/www/no.67808.cn/vendor/topthink/framework/src/helper.php ( 18.78 KB )
  28. /yingpanguazai/ssd/ssd1/www/no.67808.cn/vendor/topthink/framework/src/think/Config.php ( 5.54 KB )
  29. /yingpanguazai/ssd/ssd1/www/no.67808.cn/config/app.php ( 0.95 KB )
  30. /yingpanguazai/ssd/ssd1/www/no.67808.cn/config/cache.php ( 0.78 KB )
  31. /yingpanguazai/ssd/ssd1/www/no.67808.cn/config/console.php ( 0.23 KB )
  32. /yingpanguazai/ssd/ssd1/www/no.67808.cn/config/cookie.php ( 0.56 KB )
  33. /yingpanguazai/ssd/ssd1/www/no.67808.cn/config/database.php ( 2.48 KB )
  34. /yingpanguazai/ssd/ssd1/www/no.67808.cn/vendor/topthink/framework/src/think/facade/Env.php ( 1.67 KB )
  35. /yingpanguazai/ssd/ssd1/www/no.67808.cn/config/filesystem.php ( 0.61 KB )
  36. /yingpanguazai/ssd/ssd1/www/no.67808.cn/config/lang.php ( 0.91 KB )
  37. /yingpanguazai/ssd/ssd1/www/no.67808.cn/config/log.php ( 1.35 KB )
  38. /yingpanguazai/ssd/ssd1/www/no.67808.cn/config/middleware.php ( 0.19 KB )
  39. /yingpanguazai/ssd/ssd1/www/no.67808.cn/config/route.php ( 1.89 KB )
  40. /yingpanguazai/ssd/ssd1/www/no.67808.cn/config/session.php ( 0.57 KB )
  41. /yingpanguazai/ssd/ssd1/www/no.67808.cn/config/trace.php ( 0.34 KB )
  42. /yingpanguazai/ssd/ssd1/www/no.67808.cn/config/view.php ( 0.82 KB )
  43. /yingpanguazai/ssd/ssd1/www/no.67808.cn/app/event.php ( 0.25 KB )
  44. /yingpanguazai/ssd/ssd1/www/no.67808.cn/vendor/topthink/framework/src/think/Event.php ( 7.67 KB )
  45. /yingpanguazai/ssd/ssd1/www/no.67808.cn/app/service.php ( 0.13 KB )
  46. /yingpanguazai/ssd/ssd1/www/no.67808.cn/app/AppService.php ( 0.26 KB )
  47. /yingpanguazai/ssd/ssd1/www/no.67808.cn/vendor/topthink/framework/src/think/Service.php ( 1.64 KB )
  48. /yingpanguazai/ssd/ssd1/www/no.67808.cn/vendor/topthink/framework/src/think/Lang.php ( 7.35 KB )
  49. /yingpanguazai/ssd/ssd1/www/no.67808.cn/vendor/topthink/framework/src/lang/zh-cn.php ( 13.70 KB )
  50. /yingpanguazai/ssd/ssd1/www/no.67808.cn/vendor/topthink/framework/src/think/initializer/Error.php ( 3.31 KB )
  51. /yingpanguazai/ssd/ssd1/www/no.67808.cn/vendor/topthink/framework/src/think/initializer/RegisterService.php ( 1.33 KB )
  52. /yingpanguazai/ssd/ssd1/www/no.67808.cn/vendor/services.php ( 0.14 KB )
  53. /yingpanguazai/ssd/ssd1/www/no.67808.cn/vendor/topthink/framework/src/think/service/PaginatorService.php ( 1.52 KB )
  54. /yingpanguazai/ssd/ssd1/www/no.67808.cn/vendor/topthink/framework/src/think/service/ValidateService.php ( 0.99 KB )
  55. /yingpanguazai/ssd/ssd1/www/no.67808.cn/vendor/topthink/framework/src/think/service/ModelService.php ( 2.04 KB )
  56. /yingpanguazai/ssd/ssd1/www/no.67808.cn/vendor/topthink/think-trace/src/Service.php ( 0.77 KB )
  57. /yingpanguazai/ssd/ssd1/www/no.67808.cn/vendor/topthink/framework/src/think/Middleware.php ( 6.72 KB )
  58. /yingpanguazai/ssd/ssd1/www/no.67808.cn/vendor/topthink/framework/src/think/initializer/BootService.php ( 0.77 KB )
  59. /yingpanguazai/ssd/ssd1/www/no.67808.cn/vendor/topthink/think-orm/src/Paginator.php ( 11.86 KB )
  60. /yingpanguazai/ssd/ssd1/www/no.67808.cn/vendor/topthink/think-validate/src/Validate.php ( 63.20 KB )
  61. /yingpanguazai/ssd/ssd1/www/no.67808.cn/vendor/topthink/think-orm/src/Model.php ( 23.55 KB )
  62. /yingpanguazai/ssd/ssd1/www/no.67808.cn/vendor/topthink/think-orm/src/model/concern/Attribute.php ( 21.05 KB )
  63. /yingpanguazai/ssd/ssd1/www/no.67808.cn/vendor/topthink/think-orm/src/model/concern/AutoWriteData.php ( 4.21 KB )
  64. /yingpanguazai/ssd/ssd1/www/no.67808.cn/vendor/topthink/think-orm/src/model/concern/Conversion.php ( 6.44 KB )
  65. /yingpanguazai/ssd/ssd1/www/no.67808.cn/vendor/topthink/think-orm/src/model/concern/DbConnect.php ( 5.16 KB )
  66. /yingpanguazai/ssd/ssd1/www/no.67808.cn/vendor/topthink/think-orm/src/model/concern/ModelEvent.php ( 2.33 KB )
  67. /yingpanguazai/ssd/ssd1/www/no.67808.cn/vendor/topthink/think-orm/src/model/concern/RelationShip.php ( 28.29 KB )
  68. /yingpanguazai/ssd/ssd1/www/no.67808.cn/vendor/topthink/think-helper/src/contract/Arrayable.php ( 0.09 KB )
  69. /yingpanguazai/ssd/ssd1/www/no.67808.cn/vendor/topthink/think-helper/src/contract/Jsonable.php ( 0.13 KB )
  70. /yingpanguazai/ssd/ssd1/www/no.67808.cn/vendor/topthink/think-orm/src/model/contract/Modelable.php ( 0.09 KB )
  71. /yingpanguazai/ssd/ssd1/www/no.67808.cn/vendor/topthink/framework/src/think/Db.php ( 2.88 KB )
  72. /yingpanguazai/ssd/ssd1/www/no.67808.cn/vendor/topthink/think-orm/src/DbManager.php ( 8.52 KB )
  73. /yingpanguazai/ssd/ssd1/www/no.67808.cn/vendor/topthink/framework/src/think/Log.php ( 6.28 KB )
  74. /yingpanguazai/ssd/ssd1/www/no.67808.cn/vendor/topthink/framework/src/think/Manager.php ( 3.92 KB )
  75. /yingpanguazai/ssd/ssd1/www/no.67808.cn/vendor/psr/log/src/LoggerTrait.php ( 2.69 KB )
  76. /yingpanguazai/ssd/ssd1/www/no.67808.cn/vendor/psr/log/src/LoggerInterface.php ( 2.71 KB )
  77. /yingpanguazai/ssd/ssd1/www/no.67808.cn/vendor/topthink/framework/src/think/Cache.php ( 4.92 KB )
  78. /yingpanguazai/ssd/ssd1/www/no.67808.cn/vendor/psr/simple-cache/src/CacheInterface.php ( 4.71 KB )
  79. /yingpanguazai/ssd/ssd1/www/no.67808.cn/vendor/topthink/think-helper/src/helper/Arr.php ( 16.63 KB )
  80. /yingpanguazai/ssd/ssd1/www/no.67808.cn/vendor/topthink/framework/src/think/cache/driver/File.php ( 7.84 KB )
  81. /yingpanguazai/ssd/ssd1/www/no.67808.cn/vendor/topthink/framework/src/think/cache/Driver.php ( 9.03 KB )
  82. /yingpanguazai/ssd/ssd1/www/no.67808.cn/vendor/topthink/framework/src/think/contract/CacheHandlerInterface.php ( 1.99 KB )
  83. /yingpanguazai/ssd/ssd1/www/no.67808.cn/app/Request.php ( 0.09 KB )
  84. /yingpanguazai/ssd/ssd1/www/no.67808.cn/vendor/topthink/framework/src/think/Request.php ( 55.78 KB )
  85. /yingpanguazai/ssd/ssd1/www/no.67808.cn/app/middleware.php ( 0.25 KB )
  86. /yingpanguazai/ssd/ssd1/www/no.67808.cn/vendor/topthink/framework/src/think/Pipeline.php ( 2.61 KB )
  87. /yingpanguazai/ssd/ssd1/www/no.67808.cn/vendor/topthink/think-trace/src/TraceDebug.php ( 3.40 KB )
  88. /yingpanguazai/ssd/ssd1/www/no.67808.cn/vendor/topthink/framework/src/think/middleware/SessionInit.php ( 1.94 KB )
  89. /yingpanguazai/ssd/ssd1/www/no.67808.cn/vendor/topthink/framework/src/think/Session.php ( 1.80 KB )
  90. /yingpanguazai/ssd/ssd1/www/no.67808.cn/vendor/topthink/framework/src/think/session/driver/File.php ( 6.27 KB )
  91. /yingpanguazai/ssd/ssd1/www/no.67808.cn/vendor/topthink/framework/src/think/contract/SessionHandlerInterface.php ( 0.87 KB )
  92. /yingpanguazai/ssd/ssd1/www/no.67808.cn/vendor/topthink/framework/src/think/session/Store.php ( 7.12 KB )
  93. /yingpanguazai/ssd/ssd1/www/no.67808.cn/vendor/topthink/framework/src/think/Route.php ( 23.73 KB )
  94. /yingpanguazai/ssd/ssd1/www/no.67808.cn/vendor/topthink/framework/src/think/route/RuleName.php ( 5.75 KB )
  95. /yingpanguazai/ssd/ssd1/www/no.67808.cn/vendor/topthink/framework/src/think/route/Domain.php ( 2.53 KB )
  96. /yingpanguazai/ssd/ssd1/www/no.67808.cn/vendor/topthink/framework/src/think/route/RuleGroup.php ( 22.43 KB )
  97. /yingpanguazai/ssd/ssd1/www/no.67808.cn/vendor/topthink/framework/src/think/route/Rule.php ( 26.95 KB )
  98. /yingpanguazai/ssd/ssd1/www/no.67808.cn/vendor/topthink/framework/src/think/route/RuleItem.php ( 9.78 KB )
  99. /yingpanguazai/ssd/ssd1/www/no.67808.cn/route/app.php ( 1.72 KB )
  100. /yingpanguazai/ssd/ssd1/www/no.67808.cn/vendor/topthink/framework/src/think/facade/Route.php ( 4.70 KB )
  101. /yingpanguazai/ssd/ssd1/www/no.67808.cn/vendor/topthink/framework/src/think/route/dispatch/Controller.php ( 4.74 KB )
  102. /yingpanguazai/ssd/ssd1/www/no.67808.cn/vendor/topthink/framework/src/think/route/Dispatch.php ( 10.44 KB )
  103. /yingpanguazai/ssd/ssd1/www/no.67808.cn/app/controller/Index.php ( 4.81 KB )
  104. /yingpanguazai/ssd/ssd1/www/no.67808.cn/app/BaseController.php ( 2.05 KB )
  105. /yingpanguazai/ssd/ssd1/www/no.67808.cn/vendor/topthink/think-orm/src/facade/Db.php ( 0.93 KB )
  106. /yingpanguazai/ssd/ssd1/www/no.67808.cn/vendor/topthink/think-orm/src/db/connector/Mysql.php ( 5.44 KB )
  107. /yingpanguazai/ssd/ssd1/www/no.67808.cn/vendor/topthink/think-orm/src/db/PDOConnection.php ( 52.47 KB )
  108. /yingpanguazai/ssd/ssd1/www/no.67808.cn/vendor/topthink/think-orm/src/db/Connection.php ( 8.39 KB )
  109. /yingpanguazai/ssd/ssd1/www/no.67808.cn/vendor/topthink/think-orm/src/db/ConnectionInterface.php ( 4.57 KB )
  110. /yingpanguazai/ssd/ssd1/www/no.67808.cn/vendor/topthink/think-orm/src/db/builder/Mysql.php ( 16.58 KB )
  111. /yingpanguazai/ssd/ssd1/www/no.67808.cn/vendor/topthink/think-orm/src/db/Builder.php ( 24.06 KB )
  112. /yingpanguazai/ssd/ssd1/www/no.67808.cn/vendor/topthink/think-orm/src/db/BaseBuilder.php ( 27.50 KB )
  113. /yingpanguazai/ssd/ssd1/www/no.67808.cn/vendor/topthink/think-orm/src/db/Query.php ( 15.71 KB )
  114. /yingpanguazai/ssd/ssd1/www/no.67808.cn/vendor/topthink/think-orm/src/db/BaseQuery.php ( 45.13 KB )
  115. /yingpanguazai/ssd/ssd1/www/no.67808.cn/vendor/topthink/think-orm/src/db/concern/TimeFieldQuery.php ( 7.43 KB )
  116. /yingpanguazai/ssd/ssd1/www/no.67808.cn/vendor/topthink/think-orm/src/db/concern/AggregateQuery.php ( 3.26 KB )
  117. /yingpanguazai/ssd/ssd1/www/no.67808.cn/vendor/topthink/think-orm/src/db/concern/ModelRelationQuery.php ( 20.07 KB )
  118. /yingpanguazai/ssd/ssd1/www/no.67808.cn/vendor/topthink/think-orm/src/db/concern/ParamsBind.php ( 3.66 KB )
  119. /yingpanguazai/ssd/ssd1/www/no.67808.cn/vendor/topthink/think-orm/src/db/concern/ResultOperation.php ( 7.01 KB )
  120. /yingpanguazai/ssd/ssd1/www/no.67808.cn/vendor/topthink/think-orm/src/db/concern/WhereQuery.php ( 19.37 KB )
  121. /yingpanguazai/ssd/ssd1/www/no.67808.cn/vendor/topthink/think-orm/src/db/concern/JoinAndViewQuery.php ( 7.11 KB )
  122. /yingpanguazai/ssd/ssd1/www/no.67808.cn/vendor/topthink/think-orm/src/db/concern/TableFieldInfo.php ( 2.63 KB )
  123. /yingpanguazai/ssd/ssd1/www/no.67808.cn/vendor/topthink/think-orm/src/db/concern/Transaction.php ( 2.77 KB )
  124. /yingpanguazai/ssd/ssd1/www/no.67808.cn/vendor/topthink/framework/src/think/log/driver/File.php ( 5.96 KB )
  125. /yingpanguazai/ssd/ssd1/www/no.67808.cn/vendor/topthink/framework/src/think/contract/LogHandlerInterface.php ( 0.86 KB )
  126. /yingpanguazai/ssd/ssd1/www/no.67808.cn/vendor/topthink/framework/src/think/log/Channel.php ( 3.89 KB )
  127. /yingpanguazai/ssd/ssd1/www/no.67808.cn/vendor/topthink/framework/src/think/event/LogRecord.php ( 1.02 KB )
  128. /yingpanguazai/ssd/ssd1/www/no.67808.cn/vendor/topthink/think-helper/src/Collection.php ( 16.47 KB )
  129. /yingpanguazai/ssd/ssd1/www/no.67808.cn/vendor/topthink/framework/src/think/facade/View.php ( 1.70 KB )
  130. /yingpanguazai/ssd/ssd1/www/no.67808.cn/vendor/topthink/framework/src/think/View.php ( 4.39 KB )
  131. /yingpanguazai/ssd/ssd1/www/no.67808.cn/vendor/topthink/framework/src/think/Response.php ( 8.81 KB )
  132. /yingpanguazai/ssd/ssd1/www/no.67808.cn/vendor/topthink/framework/src/think/response/View.php ( 3.29 KB )
  133. /yingpanguazai/ssd/ssd1/www/no.67808.cn/vendor/topthink/framework/src/think/Cookie.php ( 6.06 KB )
  134. /yingpanguazai/ssd/ssd1/www/no.67808.cn/vendor/topthink/think-view/src/Think.php ( 8.38 KB )
  135. /yingpanguazai/ssd/ssd1/www/no.67808.cn/vendor/topthink/framework/src/think/contract/TemplateHandlerInterface.php ( 1.60 KB )
  136. /yingpanguazai/ssd/ssd1/www/no.67808.cn/vendor/topthink/think-template/src/Template.php ( 46.61 KB )
  137. /yingpanguazai/ssd/ssd1/www/no.67808.cn/vendor/topthink/think-template/src/template/driver/File.php ( 2.41 KB )
  138. /yingpanguazai/ssd/ssd1/www/no.67808.cn/vendor/topthink/think-template/src/template/contract/DriverInterface.php ( 0.86 KB )
  139. /yingpanguazai/ssd/ssd1/www/no.67808.cn/runtime/temp/6df755f970a38e704c5414acbc6e8bcd.php ( 12.06 KB )
  140. /yingpanguazai/ssd/ssd1/www/no.67808.cn/vendor/topthink/think-trace/src/Html.php ( 4.42 KB )
  1. CONNECT:[ UseTime:0.000379s ] mysql:host=127.0.0.1;port=3306;dbname=no_67808;charset=utf8mb4
  2. SHOW FULL COLUMNS FROM `fenlei` [ RunTime:0.000560s ]
  3. SELECT * FROM `fenlei` WHERE `fid` = 0 [ RunTime:0.000337s ]
  4. SELECT * FROM `fenlei` WHERE `fid` = 63 [ RunTime:0.000316s ]
  5. SHOW FULL COLUMNS FROM `set` [ RunTime:0.000673s ]
  6. SELECT * FROM `set` [ RunTime:0.000228s ]
  7. SHOW FULL COLUMNS FROM `article` [ RunTime:0.000696s ]
  8. SELECT * FROM `article` WHERE `id` = 487237 LIMIT 1 [ RunTime:0.002412s ]
  9. UPDATE `article` SET `lasttime` = 1778315548 WHERE `id` = 487237 [ RunTime:0.008733s ]
  10. SELECT * FROM `fenlei` WHERE `id` = 65 LIMIT 1 [ RunTime:0.000406s ]
  11. SELECT * FROM `article` WHERE `id` < 487237 ORDER BY `id` DESC LIMIT 1 [ RunTime:0.000521s ]
  12. SELECT * FROM `article` WHERE `id` > 487237 ORDER BY `id` ASC LIMIT 1 [ RunTime:0.000581s ]
  13. SELECT * FROM `article` WHERE `id` < 487237 ORDER BY `id` DESC LIMIT 10 [ RunTime:0.003726s ]
  14. SELECT * FROM `article` WHERE `id` < 487237 ORDER BY `id` DESC LIMIT 10,10 [ RunTime:0.000955s ]
  15. SELECT * FROM `article` WHERE `id` < 487237 ORDER BY `id` DESC LIMIT 20,10 [ RunTime:0.003767s ]
0.099027s