我是使用 MERN 创建全栈应用程序的新手(使用 React 而不是 Angular,因为我熟悉 React)。我一直在看教程来学习如何将我的服务器端代码(express/mongo)分开,因为我最初在我的 server.js 文件中定义了我的 Express 路由、MongoDB 连接和 API 请求(只是为了让一些工作)。
目前,我的文件夹结构以及我定义路由和数据库的方式如下:
- 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)
用户路由.js
-root folder
-public
-src
-server
-db
-models
-userModel.js
-routes
-userRoutes.js
-routes.js
-server.js