From 0dd20296b02e0e12caa24c8a5310d36bb42b457c Mon Sep 17 00:00:00 2001 From: Patrick Schilf Date: Thu, 6 Jul 2023 10:20:16 -0300 Subject: [PATCH] ROCKS-13 Allow mongo uri or user,pass,host,port,db --- app/layers/mongo/nuxt.config.ts | 13 +++++++++---- app/layers/mongo/server/plugins/mongoose.ts | 13 ++++++------- 2 files changed, 15 insertions(+), 11 deletions(-) diff --git a/app/layers/mongo/nuxt.config.ts b/app/layers/mongo/nuxt.config.ts index 87f3a062..6f764f90 100644 --- a/app/layers/mongo/nuxt.config.ts +++ b/app/layers/mongo/nuxt.config.ts @@ -3,10 +3,15 @@ export default defineNuxtConfig({ buildDir: `./.build/.nuxt`, nitro: { - runtimeConfig: { - mongodb: { - uri: ``, - authDb: `admin`, + runtimeConfig: { + mongodb: { + uri: ``, + host: `localhost`, + port: 27017, + db: `db`, + user: `user`, + pass: `pass`, + authSource: ``, }, }, }, diff --git a/app/layers/mongo/server/plugins/mongoose.ts b/app/layers/mongo/server/plugins/mongoose.ts index ac3e86ea..0bc72ba4 100644 --- a/app/layers/mongo/server/plugins/mongoose.ts +++ b/app/layers/mongo/server/plugins/mongoose.ts @@ -1,17 +1,16 @@ import Specimen from "entity-types/Specimen" -import mongoose from "mongoose" +import mongoose, { type ConnectOptions } from "mongoose" import { type NitroApp } from "nitropack" export default defineNitroPlugin(async (nitroApp: NitroApp) => { - const { uri, authDb } = useRuntimeConfig().mongodb + const { uri, user, pass, host, port, db, authSource } = useRuntimeConfig().mongodb - if (!uri) { - throw new Error(`No MongoDB connection string provided.`) + const connectOptions: ConnectOptions = {} + if (authSource) { + connectOptions.authSource = authSource } - await mongoose.connect(uri, { - authSource: authDb, - }) + await mongoose.connect(uri || `mongodb://${user}:${pass}@${host}:${port}/${db}`, connectOptions) console.info(`Connected to MongoDB.`) await Specimen.init()