关于 MERN 文件夹结构和定义 MongoDB 连接位置的建议
Recommendations on MERN folder structure and where to define MongoDB connection
我是使用 MERN 创建全栈应用程序的新手(使用 React 而不是 Angular,因为我熟悉 React)。我一直在查看教程以了解如何将我的服务器端代码 (express/mongo) 分开,因为我最初在我的文件中定义了 Express 路由、MongoDB 连接和 API 请求server.js 文件(只是为了让一些东西工作)。
目前,我的文件夹结构以及我定义路由和数据库的方式如下:
- routes.js 包括我在我的路线文件夹中定义的所有路线和
导出要在 server.js
中使用的路由函数
- 使用express.Router为路径文件夹中的模型(即用户)定义特定路径。我还在此处包括 MongoDB 模型以执行任何必要的操作(查找、插入等)
- 在 userModel.js
中定义 mongo 模式
此时,我不确定在哪里连接我的 MongoDB。之前,我在 server.js 中连接到数据库,但是如果我想使用我的模型来查询我的数据库,我是否在我使用模型的每个路由文件中定义我的连接?有没有办法让我只调用 mongoose.connect 一次并确保我始终连接到我的数据库?
// Connect to mongodb
mongoose.connect(process.env.MONGOLAB_URI || db_url)
userRoutes.js
-root folder
-public
-src
-server
-db
-models
-userModel.js
-routes
-userRoutes.js
-routes.js
-server.js
在单独的文件中添加 mongoose 连接。然后 link 使用 let schema = require('_path_to_file_')
的连接 link 到数据库。
我经常看到以下目录结构 w.r.t 全栈 JS 应用程序
- 根
- 客户
- 服务器
- 普通
同样,我看到了一种修改后的 FHS 方法,其实现类似于以下内容
- 根
- src(包含 react/redux dirs - actions、comp、cont、reducer、store 等)
- bin(编译后的dist)
- 等("Editable Text Configuration" 或 "Extended Tool Chest")
- public
- package.json、自述文件等
要使用 MongoDB、Express、Node JS
构建 API 的文件夹结构
- 控制器
/* user.controller.js
- 型号
/* user.model.js
- 路线
/* user.route.js
- 配置
/* database.js
/* server.js
/*package.json
//database.js
module.exports = {
url:'mongodb://localhost:27017/db_name'
}
我是使用 MERN 创建全栈应用程序的新手(使用 React 而不是 Angular,因为我熟悉 React)。我一直在查看教程以了解如何将我的服务器端代码 (express/mongo) 分开,因为我最初在我的文件中定义了 Express 路由、MongoDB 连接和 API 请求server.js 文件(只是为了让一些东西工作)。
目前,我的文件夹结构以及我定义路由和数据库的方式如下:
- routes.js 包括我在我的路线文件夹中定义的所有路线和 导出要在 server.js 中使用的路由函数
- 使用express.Router为路径文件夹中的模型(即用户)定义特定路径。我还在此处包括 MongoDB 模型以执行任何必要的操作(查找、插入等)
- 在 userModel.js 中定义 mongo 模式
此时,我不确定在哪里连接我的 MongoDB。之前,我在 server.js 中连接到数据库,但是如果我想使用我的模型来查询我的数据库,我是否在我使用模型的每个路由文件中定义我的连接?有没有办法让我只调用 mongoose.connect 一次并确保我始终连接到我的数据库?
// Connect to mongodb
mongoose.connect(process.env.MONGOLAB_URI || db_url)
userRoutes.js
-root folder
-public
-src
-server
-db
-models
-userModel.js
-routes
-userRoutes.js
-routes.js
-server.js
在单独的文件中添加 mongoose 连接。然后 link 使用 let schema = require('_path_to_file_')
的连接 link 到数据库。
我经常看到以下目录结构 w.r.t 全栈 JS 应用程序
- 根
- 客户
- 服务器
- 普通
同样,我看到了一种修改后的 FHS 方法,其实现类似于以下内容
- 根
- src(包含 react/redux dirs - actions、comp、cont、reducer、store 等)
- bin(编译后的dist)
- 等("Editable Text Configuration" 或 "Extended Tool Chest")
- public
- package.json、自述文件等
要使用 MongoDB、Express、Node JS
构建 API 的文件夹结构- 控制器 /* user.controller.js
- 型号 /* user.model.js
- 路线 /* user.route.js
- 配置 /* database.js
/* server.js /*package.json
//database.js
module.exports = {
url:'mongodb://localhost:27017/db_name'
}