1

我是使用 MERN 创建全栈应用程序的新手(使用 React 而不是 Angular,因为我熟悉 React)。我一直在看教程来学习如何将我的服务器端代码(express/mongo)分开,因为我最初在我的 server.js 文件中定义了我的 Express 路由、MongoDB 连接和 API 请求(只是为了让一些工作)。

目前,我的文件夹结构以及我定义路由和数据库的方式如下:

  1. routes.js 包含我在路由文件夹中定义的所有路由,并导出一个路由函数以在 server.js 中使用
  2. 使用 express.Router 为路由文件夹中的模型(即用户)定义特定路由。我还在此处包含 MongoDB 模型以执行任何必要的操作(查找、插入等)
  3. 在 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
4

3 回答 3

2

我经常看到以下 dir 结构 wrt 全栈 JS 应用程序

    • 客户
    • 服务器
    • 常见的

同样,我已经看到了类似于以下实施的修改后的FHS方法

    • src(包含 react/redux 目录 - 操作、comp、cont、reducers、store 等)
    • bin(已编译的 dist)
    • 等(“可编辑文本配置”或“扩展工具箱”)
    • 上市
    • package.json、自述文件等
于 2017-11-05T18:46:43.500 回答
2

在单独的文件中添加 mongoose 连接。然后使用let schema = require('_path_to_file_')您需要链接到数据库的任何位置链接该连接。

于 2017-07-13T14:45:37.133 回答
0

使用 MongoDB、Express、Node JS 构建 API 的文件夹结构

  • 控制器 /* user.controller.js
  • 模型 /* user.model.js
  • 路线 /* user.route.js
  • 配置 /* 数据库.js

/* server.js /*package.json

//database.js

  module.exports = {
          url:'mongodb://localhost:27017/db_name'
          }

于 2020-01-09T12:04:14.203 回答