简体   繁体   English

如何在 Vercel 上使用 Mongoose(MongoDB)连接部署 Next JS App?

[英]How to deploy Next JS App with Mongoose(MongoDB) connection on Vercel?

I am facing issue while deploying my next js app on vercel with mongodb connection.我在使用 mongodb 连接在 vercel 上部署我的下一个 js 应用程序时遇到问题。 I have added env variable also on vercel site where we deploy next js app.我还在我们部署下一个 js 应用程序的 vercel 站点上添加了 env 变量。 Is there something going wrong in the below file?下面的文件有问题吗?

next.config.js next.config.js

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

I have add env variable as well into my next js project.env.local我已经将 env 变量添加到我的下一个 js project.env.local

MONGODB_URI = "mongodb://localhost/tasksdb"

I establish this mongodb connection from this doc https://mongoosejs.com/ .我从这个文档https://mongoosejs.com/建立这个 mongodb 连接。 It's provide us to connect with mongodb straightaway.它让我们可以直接与 mongodb 连接。

And this my mongodb connection establish code这是我的 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);
});

Is there something wrong by creating the database this way because in local everything working fine?以这种方式创建数据库是否有问题,因为在本地一切正常?

I don't think vercel's servers can comunicate with your localhost.我不认为 vercel 的服务器可以与您的本地主机通信。 You can try hosting your database in the mongodb cloud您可以尝试在mongodb 云中托管您的数据库

The code seems to be fine, but you can not connect to Vercel using localhost.该代码似乎很好,但您无法使用 localhost 连接到 Vercel。 You can use Serverless Atlas version of MongoDB which is free you can host your database there and then connect using the link they will provide.您可以使用免费的无服务器 Atlas 版本的 MongoDB,您可以在那里托管您的数据库,然后使用他们提供的链接进行连接。

在此处输入图像描述 See: https://www.mongodb.com/pricing请参阅: https://www.mongodb.com/pricing

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM