Mongoose: ๋ง๊ตฌ์Šค๋กœ ์ธํ•ด ๋‹จ์œ„ ํ…Œ์ŠคํŠธ ํ”„๋กœ์„ธ์Šค๊ฐ€ ์ข…๋ฃŒ๋˜์ง€ ์•Š์Šต๋‹ˆ๊นŒ?

์— ๋งŒ๋“  2017๋…„ 10์›” 16์ผ  ยท  3์ฝ”๋ฉ˜ํŠธ  ยท  ์ถœ์ฒ˜: Automattic/mongoose

์•ˆ๋…•
4.12.0

๋‚ด ์ž‘์—… ์•ฑ(Express+mangoose)์— Mocha/Chai ํ…Œ์ŠคํŠธ๋ฅผ ์ถ”๊ฐ€ํ–ˆ๋Š”๋ฐ ์•ฑ์„ ์‹คํ–‰ํ•˜๋Š” ๋™์•ˆ ๋ณด์ด์ง€ ์•Š๋Š” ๊ฒƒ์„ ๋ฐœ๊ฒฌํ–ˆ์Šต๋‹ˆ๋‹ค.

๋ฌธ์ œ
๋‚ด ๋‹จ์œ„ ํ…Œ์ŠคํŠธ๋ฅผ ์‹คํ–‰ํ•  ๋•Œ ํ”„๋กœ์„ธ์Šค๊ฐ€ ์ข…๋ฃŒ๋˜์ง€ ์•Š๊ณ  ๋ง๊ตฌ์Šค๋กœ ์ธํ•ด ์œ ํœด ์ƒํƒœ๊ฐ€ ๋ฉ๋‹ˆ๋‹ค(๋ถ„๋ช…ํžˆ).

์•„๋ž˜ ์ฝ”๋“œ ์Šค๋‹ˆํŽซ์—๋Š” ๋†€๋ผ์šด ๊ฒƒ์ด ์—†์Šต๋‹ˆ๋‹ค... ํ…Œ์ŠคํŠธ ๋งˆ์ง€๋ง‰์— ์ผ๋ถ€ mongoose#disconnect๋ฅผ ์‹œ๋„ํ–ˆ์ง€๋งŒ ์•„๋ฌด ๊ฒƒ๋„ ๋ณ€๊ฒฝ๋˜์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค.

ํ”„๋กœ์„ธ์Šค ์ข…๋ฃŒ๋ฅผ ์ฐจ๋‹จํ•˜๋Š” ๊ฒƒ์ด ๋ฌด์—‡์ธ์ง€ ์กฐ์–ธ์„ ๋ถ€ํƒ๋“œ๋ฆฝ๋‹ˆ๋‹ค.

const mongoose = require('mongoose');
import { databaseConfig } from './config/database';

export function setupDatabase() {
  mongoose.Promise = require('bluebird');
  //mongoose.set("debug", true)
  var connection = mongoose.connect(databaseConfig.database, { useMongoClient: true }, (err) => { console.log("Connect error: " + err) });

  mongoose.connection.on('connected', () => {
    console.log('Connected to database ' + databaseConfig.database);
  });

  mongoose.connection.on('error', (err) => {
    console.log('Database error: ' + err);
  });

  return mongoose;
}

๊ฐ€์žฅ ์œ ์šฉํ•œ ๋Œ“๊ธ€

ํ”„๋กœ์„ธ์Šค๋ฅผ ๊ฐ•์ œ ์ข…๋ฃŒํ•˜๋Š” ๊ฒƒ์€ ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•์ผ ๋ฟ์ž…๋‹ˆ๋‹ค. ๋ฌธ์ œ๋Š” ์—ฌ๋Ÿฌ ์—ฐ๊ฒฐ์ด ์—ด๋ ค ์žˆ๊ณ  mongoose.disconnect() ๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒฝ์šฐ ์—ฌ์ „ํžˆ ์†Œ์ผ“์ด ์—ด๋ ค ์žˆ๋Š” ๊ฒƒ์ฒ˜๋Ÿผ ๋ณด์ž…๋‹ˆ๋‹ค.

๋ชจ๋“  3 ๋Œ“๊ธ€

mongoose.connect ์„ ์‚ฌ์šฉํ•  ๋•Œ๋งˆ๋‹ค ํ•ญ์ƒ ์ด๋Ÿฌํ•œ ๊ฒฝ๊ณ ๊ฐ€ ๋‚˜ํƒ€๋‚ฉ๋‹ˆ๋‹ค.

DeprecationWarning: open() ๋Š” mongoose >= 4.11.0์—์„œ ๋” ์ด์ƒ ์‚ฌ์šฉ๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๋Œ€์‹  openUri() ๋ฅผ ์‚ฌ์šฉํ•˜๊ฑฐ๋‚˜ connect() ๋˜๋Š” createConnection() ๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒฝ์šฐ useMongoClient ์˜ต์…˜์„ ์„ค์ •ํ•˜์‹ญ์‹œ์˜ค. createConnection() . http://mongoosejs.com/docs/connections.html#use -mongo-client ์ฐธ์กฐ

im on node: 8.7 , ๋ชฝ๊ตฌ์Šค: 4.12.2

์ด ์‹œ๋„,

const mongoose = require('mongoose');
mongoose.Promise = require('bluebird');
import { databaseConfig } from './config/database';


async function setupDatabase() {
  // mongoose.set('debug', true);
  return await mongoose.connection.openUri(databaseConfig.database);
}

(async function () {
  const conn = await setupDatabase();
  // closing instance
  await conn.close();
}());



๊ธ€์Ž„, ๋‚ด ๋‚˜์œ ์ด๊ฒƒ์€ ๋ง๊ตฌ์Šค ์ž˜๋ชป์ด ์•„๋‹ˆ์—ˆ๋‹ค.

๋‚˜๋Š” mocha๋ฅผ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ์œผ๋ฉฐ --exit ๋งค๊ฐœ๋ณ€์ˆ˜๋ฅผ ์ถ”๊ฐ€ํ•˜์—ฌ process.exit๋ฅผ ๊ฐ•์ œ๋กœ ํ˜ธ์ถœํ•ด์•ผ ํ–ˆ์Šต๋‹ˆ๋‹ค.

์ด ๋งค๊ฐœ๋ณ€์ˆ˜๊ฐ€ ์—†์œผ๋ฉด mocha๋Š”... ํ…Œ์ŠคํŠธ๊ฐ€ ๋๋‚  ๋•Œ ์•„๋ฌด ๊ฒƒ๋„ ํ•˜์ง€ ์•Š๊ณ  ๊ธฐ๋‹ค๋ฆฝ๋‹ˆ๋‹ค.

ํ”„๋กœ์„ธ์Šค๋ฅผ ๊ฐ•์ œ ์ข…๋ฃŒํ•˜๋Š” ๊ฒƒ์€ ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•์ผ ๋ฟ์ž…๋‹ˆ๋‹ค. ๋ฌธ์ œ๋Š” ์—ฌ๋Ÿฌ ์—ฐ๊ฒฐ์ด ์—ด๋ ค ์žˆ๊ณ  mongoose.disconnect() ๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒฝ์šฐ ์—ฌ์ „ํžˆ ์†Œ์ผ“์ด ์—ด๋ ค ์žˆ๋Š” ๊ฒƒ์ฒ˜๋Ÿผ ๋ณด์ž…๋‹ˆ๋‹ค.

์ด ํŽ˜์ด์ง€๊ฐ€ ๋„์›€์ด ๋˜์—ˆ๋‚˜์š”?
0 / 5 - 0 ๋“ฑ๊ธ‰