44 lines
1.7 KiB
JavaScript
44 lines
1.7 KiB
JavaScript
const mongoose = require('mongoose')
|
|
const port = process.env.PORT || 3000
|
|
const env = process.env.NODE_ENV || 'development'
|
|
module.exports = (app) => {
|
|
let connectionString
|
|
if (env === 'development') {
|
|
connectionString = process.env.MONGODB_URL
|
|
} else if (env === 'test') {
|
|
connectionString = process.env.MONGODB_URL
|
|
} else if (env === 'production') {
|
|
connectionString = process.env.MONGODB_URL
|
|
}
|
|
mongoose
|
|
.connect(connectionString, {})
|
|
.then(async function () {
|
|
console.log('MongoDB Database Connected')
|
|
const MyModel = mongoose.model('MyCollection', new mongoose.Schema({ name: String }))
|
|
|
|
// Create a document to force MongoDB to actually create the DB and collection
|
|
await MyModel.create({ name: 'test' })
|
|
|
|
// Auto-sync permissions defined in permissionList.js
|
|
const { syncPermissions } = require('../components/permission/permissionService')
|
|
await syncPermissions()
|
|
|
|
// Ensure default MinIO buckets exist (temp, properties, documents)
|
|
const { ensureBucketsExist } = require('../utils/upload/bucket')
|
|
await ensureBucketsExist(['temp', 'properties', 'documents']).catch((err) => {
|
|
console.error('Failed to ensure default MinIO buckets:', err)
|
|
})
|
|
|
|
// Initialize cron jobs
|
|
const { initCronJobs } = require('../jobs/index')
|
|
initCronJobs()
|
|
|
|
app.listen(port, function () {
|
|
console.log('Server Started On Port ' + port)
|
|
})
|
|
})
|
|
.catch(function (err) {
|
|
console.log(err)
|
|
})
|
|
}
|