๋ณธ๋ฌธ์œผ๋กœ ๋ฐ”๋กœ๊ฐ€๊ธฐ

db.jsํŒŒ์ผ

import mongoose from "mongoose";
import dotenv from "dotenv";
dotenv.config();
mongoose.connect(process.env.Mongo_URL, {
  useNewUrlParser: true,
  useFindAndModify: false,
  //configuration์„ ์„ค์ •
  
});

// mongoose.connect()
// string์œผ๋กœ ๋œ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ ์š”์ฒญํ•˜์—ฌ ์–ด๋””์— ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๊ฐ€ ์ €์žฅ๋˜์–ด์žˆ๋Š”์ง€ ์•Œ๋ ค์ค€๋‹ค.
// Mongo_URL = "mongodb://127.0.0.1:27017/serverPractice"
const db = mongoose.connection;
// mongoose.connection.once๋กœ ๋ฐ”๋กœ ์—ฐ๊ฒฐํ•ด๋„ ๋˜์ง€๋งŒ ์ถ•์•ฝ์„ ์œ„ํ•ด const์— ์ €์žฅํ•ด๋†“์Œ.

const handleOpen = () => console.log("โœ…Connected to DB");
const handleError = (error) => console.log(`Error on DB Connection:${error}`);

db.once("open", handleOpen);
db.on("error", handleError);
// ์—ฐ๊ฒฐ, ์—๋Ÿฌ, ์ ‘์† ๋Š๊น€์ด ์ผ์–ด๋‚˜๋ฉด ์ฝœ๋ฐฑํ•จ์ˆ˜๋ฅผ ์‹คํ–‰ํ•œ๋‹ค.
// ์—ฐ๊ฒฐ์ด ๋Š๊ธธ ์‹œ ์ž๋™์œผ๋กœ ์žฌ์ ‘์†์„ ์‹คํ–‰ํ•œ๋‹ค.

 

init.jsํŒŒ์ผ

import "/db"


When you need to import something that doesn't export anything, but does something else, this is a side effect only module. You import it only to initialize it.

npm start๋กœ init.js๋ฅผ ์‹คํ–‰ํ•˜๋ฉด database server์™€ ์—ฐ๊ฒฐ๋˜๊ณ , Connected to DB๊ฐ€ ๋กœ๊ทธ์— ๋œจ๋Š” ๊ฒƒ์„ ๋ณด๋ฉด 'db.js'๋Š” exportํ•˜๋Š” ๊ฒƒ์€ ์—†์ง€๋งŒ, ํŒŒ์ผ์ด ๋ถˆ๋Ÿฌ์™€์ ธ์„œ ์‹คํ–‰๋˜๋Š”(initialize) ๊ฒƒ์„ 'Import a module for its side effects only'๋ผ๊ณ  ํ•˜๋Š” ๋“ฏ ํ•ฉ๋‹ˆ๋‹ค.

๋ฐ˜์‘ํ˜•