【问题标题】:How to deploy Next JS App with Mongoose(MongoDB) connection on Vercel?如何在 Vercel 上使用 Mongoose(MongoDB)连接部署 Next JS App?
【发布时间】:2022-01-20 11:45:32
【问题描述】:

我在使用 mongodb 连接在 vercel 上部署我的下一个 js 应用程序时遇到问题。我还在我们部署下一个 js 应用程序的 vercel 站点上添加了 env 变量。下面的文件有问题吗?

next.config.js

module.exports = {
  env: {
    MONGODB_URI: "mongodb://localhost/tasksdb",
  },
};

我已经在我的下一个 js 项目中添加了 env 变量 .env.local

MONGODB_URI = "mongodb://localhost/tasksdb"

我从这个文档https://mongoosejs.com/ 建立了这个 mongodb 连接。它为我们提供了直接与 mongodb 连接。

这是我的 mongodb 连接建立代码

import { connect, connection } from "mongoose";

const conn = {
  isConnected: false,
};

export async function dbConnect() {
  if (conn.isConected) return;
   
  const db = await connect(process.env.MONGODB_URI);

  conn.isConnected = db.connections[0].readyState;

  // console.log(conn.isConnected);
  // console.log(db.connection.db.databaseName)
}

connection.on("connected", () => {
  console.log("Mongodb connected to db");
});

connection.on("error", (err) => {
  console.error("Mongodb connected to", err.message);
});

以这种方式创建数据库是否有问题,因为在本地一切正常?

【问题讨论】:

    标签: javascript reactjs mongodb next.js


    【解决方案1】:

    我认为 vercel 的服务器无法与您的本地主机通信。您可以尝试将数据库托管在mongodb cloud

    【讨论】:

      【解决方案2】:

      代码似乎没问题,但您无法使用 localhost 连接到 Vercel。您可以使用免费的无服务器 Atlas 版本的 MongoDB,您可以在其中托管您的数据库,然后使用他们提供的链接进行连接。

      见:https://www.mongodb.com/pricing

      【讨论】:

        猜你喜欢
        • 2022-08-12
        • 1970-01-01
        • 2021-08-20
        • 1970-01-01
        • 2021-06-30
        • 1970-01-01
        • 2020-10-18
        • 2020-09-02
        • 1970-01-01
        相关资源
        最近更新 更多