- ExpressJS 教程
- ExpressJS - 主页
- ExpressJS - 概述
- ExpressJS - 环境
- ExpressJS - 你好世界
- ExpressJS - 路由
- ExpressJS - HTTP 方法
- ExpressJS - URL 构建
- ExpressJS - 中间件
- ExpressJS - 模板
- ExpressJS - 静态文件
- ExpressJS - 表单数据
- ExpressJS - 数据库
- ExpressJS - Cookie
- ExpressJS - 会话
- ExpressJS - 身份验证
- ExpressJS - RESTful API
- ExpressJS - 脚手架
- ExpressJS - 错误处理
- ExpressJS - 调试
- ExpressJS - 最佳实践
- ExpressJS - 资源
- ExpressJS 有用资源
- ExpressJS - 快速指南
- ExpressJS - 有用的资源
- ExpressJS - 讨论
ExpressJS - 最佳实践
与 Django 和 Rails 具有定义的处理方式、文件结构等不同,Express 不遵循定义的方式。这意味着您可以按照自己喜欢的方式构建应用程序。但是,随着应用程序规模的增大,如果没有明确定义的结构,则维护起来会非常困难。在本章中,我们将了解构建应用程序时常用的目录结构和关注点分离。
首先,我们将讨论创建 Node 和 Express 应用程序的最佳实践。
始终使用npm init开始节点项目。
始终使用--save或--save-dev安装依赖项。这将确保如果您移动到不同的平台,您只需运行npm install即可安装所有依赖项。
坚持使用小写文件名和驼峰式变量。如果您查看任何 npm 模块,您会发现它以小写形式命名并用破折号分隔。每当您需要这些模块时,请使用驼峰命名法。
不要将 node_modules 推送到您的存储库。相反,npm 在开发机器上安装所有内容。
使用配置文件来存储变量
将路由分组并隔离到自己的文件。例如,以我们在 REST API 页面中看到的电影中的 CRUD 操作为例。
目录结构
现在让我们讨论 Express 的目录结构。
网站
Express 没有社区定义的用于创建应用程序的结构。以下是一个网站主要使用的项目结构。
test-project/ node_modules/ config/ db.js //Database connection and configuration credentials.js //Passwords/API keys for external services used by your app config.js //Other environment variables models/ //For mongoose schemas users.js things.js routes/ //All routes for different entities in different files users.js things.js views/ index.pug 404.pug ... public/ //All static content being served images/ css/ javascript/ app.js routes.js //Require all routes in this and then require this file in app.js package.json
还有其他方法可以使用 Express 构建网站。您可以使用 MVC 设计模式构建网站。欲了解更多信息,您可以访问以下链接。
https://code.tutsplus.com/tutorials/build-a-complete-mvc-website-with-expressjs--net-34168
和,
https://www.terlici.com/2014/08/25/best-practices-express-struct.html。
RESTful API
API设计更简单;他们不需要公共或视图目录。使用以下结构构建 API -
test-project/ node_modules/ config/ db.js //Database connection and configuration credentials.js //Passwords/API keys for external services used by your app models/ //For mongoose schemas users.js things.js routes/ //All routes for different entities in different files users.js things.js app.js routes.js //Require all routes in this and then require this file in app.js package.json
您还可以使用yeoman 生成器来获得类似的结构。