"dependencies": {
"dotenv": "^16.0.0",
"express": "^4.17.2",
"mongoose": "^6.2.1"
}
const mongoose = require("mongoose");
const { MONGO_INITDB_DATABASE, MONGO_INITDB_ROOT_USERNAME, MONGO_INITDB_ROOT_PASSWORD } = process.env;
const MONGO_URL = `mongodb://${MONGO_INITDB_ROOT_USERNAME}:${MONGO_INITDB_ROOT_PASSWORD}@mongo:27017/${MONGO_INITDB_DATABASE}?authSource=admin&authMechanism=SCRAM-SHA-1`
module.exports = () => {
mongoose.connect(MONGO_URL, {
useNewUrlParser: true,
useUnifiedTopology: true
}).then(() => {
console.log("MongoDB Connected");
}).catch(err => {
throw new Error(err);
});
}
const mongoose = require("mongoose");
const Schema = mongoose.Schema;
const TaskSchema = new Schema({
title: {
type: String
},
description: {
type: String
},
date: {
type: String
}
});
module.exports = mongoose.model("task", TaskSchema);
여기서 만든 스키마는 resolver에서 쓰인다
mongoose.model 에는 파라미터 값으로 collection name과 schema가 들어가는데,
collection name을 단수 표현으로 쓰면 알아서 복수 표현으로 변환해준다
const express = require("express");
require("dotenv").config();
const app = express();
const port = process.env.PORT || 5000;
const dbConnect = require("./config/db");
app.listen(port, () => {
console.log(`Server Running on ${port} port`);
dbConnect();
}).on("error", err => {
throw new Error(err);
});