Express + mongoose + nodemon 数据库连接

3

我有我的Express应用程序的起点

import express from "express";
import dotenv from "dotenv";
import userRoutes from "./routes/userRoutes.js";
import { connectDb } from "./config/db.js";

const app = express();
connectDb();

dotenv.config();

const PORT = process.env.PORT || 5001;

app.use("/api/users", userRoutes);
app.get("/", (req, res) => {
  res.send("Simple  server running on expresssssss");
});

app.listen(PORT, () => {
  console.log(`App running on port ${PORT}`);
});

以及负责存储数据库连接函数的文件

import mongoose from "mongoose";
import dotenv from "dotenv";

dotenv.config();

const connectDb = async () => {
  try {
    await mongoose.connect(process.env.MONGO_DB_CONNECTION_STRING);
    console.log("DB connection established");
  } catch (err) {
    console.log("Error during the DB connection", err);
  }
};

export { connectDb };

我在 package.json 中也像这样使用 nodemon

"server": "nodemon backend/index.js"

现在每次我更改项目中的文件,都会看到控制台输出“连接到数据库已建立”的信息。这意味着每次修改文件时,我都在尝试连接数据库。这是我应该担心的事情吗?有没有更好的方法只连接一次而不是一直重新触发它?非常感谢任何建议。
1个回答

1

不用担心,实际上它就是这样工作的。当你在代码中做出一些更改时,它会重新启动整个服务器,这是完全正常的。如果你使用的是 node 版本高于 18.11.0,你可以使用内置的 node.js watcher,使用命令 node --watch index.js,这样你就不需要使用 nodemon 了。话虽如此,--watch 仍然是一个实验性功能。


1
谢谢你的回答!每次我在代码中更改任何内容时都向数据库发送连接请求似乎有点不对,但我很高兴这是可以的 :) - AdamKniec

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接