express+MongoDB部署踩坑

206 阅读3分钟

几个容易踩坑的点

具体流程就不详细讲了,讲几个容易踩坑的点

部署工具

用Render部署express服务

用MongoDB Atlas部署MongoDB数据库集群

用Render部署express服务

网站:render.com/

设置环境变量的坑点

image.png

这个环境变量可以在.env文件里面找

注意,这里有个坑,如果再render网站中更新了环境变量,要删掉字段再新建才会成功应用。 之前部署的过程中我的MONGO_URI字段更新了以后重复部署,发现一直不成功,才发现新的值没有应用上。

用MongoDB Atlas部署MongoDB数据库集群

一定要在network access里面添加IP白名单,把你的测试环境ip和render ip都加上去,不然你的访问会被拒绝

image.png

用postman测试部署好的服务

要使用 Postman 测试你在 Render 上部署的后端服务,你需要确保几个关键点:

  1. 后端服务 URL:确认你的后端服务 URL 是正确的,并且服务已在 Render 上成功运行。
  2. 数据库连接配置:确保你的数据库能够被 Render 上的服务访问。通常,你需要确保数据库允许来自 Render 服务器的 IP 地址访问,或者在连接字符串中使用适当的配置。
  3. Postman 配置:在 Postman 中配置好环境变量和请求参数。

以下是详细步骤:

1. 检查后端服务 URL

确保你的后端服务 URL 是正确的,例如:

https://two024-7-28my-express-app.onrender.com

2. 配置数据库访问

如果你的 MongoDB 数据库不在 Render 上,你需要确保数据库允许 Render 服务器的 IP 地址访问。具体步骤如下:

  • 设置数据库的允许访问 IP 地址

    • 如果使用的是 MongoDB Atlas,进入 Atlas 控制台,找到你的数据库集群,在 “Network Access” 中添加 Render 服务器的 IP 地址(可以添加 0.0.0.0/0 以允许所有 IP 地址访问,但这仅用于测试,生产环境需更严格控制访问)。

3. 在 Postman 中配置环境变量和请求

步骤一:创建 Postman 环境

  1. 打开 Postman,点击右上角的齿轮图标,然后选择 “Manage Environments”。
  2. 创建一个新环境,例如 “Render Backend”。
  3. 添加环境变量,例如 base_url,值为 https://two024-7-28my-express-app.onrender.com

步骤二:配置请求

  1. 在 Postman 中新建一个请求。

  2. 选择请求方法(GET、POST 等)。

  3. 在 URL 输入框中,输入

    {{base_url}}/你的API路径
    

    。例如:

    {{base_url}}/api/v1/resource
    
  4. 配置请求头部、参数和请求体(如果需要)。

示例请求配置

  • URL: {{base_url}}/api/v1/resource

  • 方法: POST

  • Headers

    :

    • Content-Type: application/json
  • Body

    (示例 JSON 请求体):

    {
      "key1": "value1",
      "key2": "value2"
    }
    

4. 测试接口

  1. 配置好请求后,点击 “Send” 按钮来发送请求。
  2. 查看响应结果,以确定你的接口是否工作正常。

示例代码(数据库连接)

确保在你的 Express 应用中正确配置数据库连接字符串。例如:

const mongoose = require('mongoose');
​
const dbURI = process.env.MONGODB_URI || 'your_mongodb_connection_string';
​
mongoose.connect(dbURI, {
  useNewUrlParser: true,
  useUnifiedTopology: true,
  ssl: true,
  sslValidate: true,
  sslCA: 'path_to_CA_cert'  // 如果需要验证 CA 证书
}).then(() => {
  console.log('MongoDB connected successfully');
}).catch(err => {
  console.error('MongoDB connection error:', err);
});

这样配置好后,你应该可以使用 Postman 来测试你的 API 接口。