mirror of
https://github.com/sasjs/server.git
synced 2026-01-15 09:50:06 +00:00
fix: organized code for usage of multer
This commit is contained in:
@@ -4,9 +4,7 @@ import morgan from 'morgan'
|
|||||||
import dotenv from 'dotenv'
|
import dotenv from 'dotenv'
|
||||||
import cors from 'cors'
|
import cors from 'cors'
|
||||||
|
|
||||||
import webRouter from './routes/web'
|
import { connectDB, getWebBuildFolderPath, setProcessVariables } from './utils'
|
||||||
import apiRouter from './routes/api'
|
|
||||||
import { connectDB, getWebBuildFolderPath } from './utils'
|
|
||||||
|
|
||||||
dotenv.config()
|
dotenv.config()
|
||||||
|
|
||||||
@@ -28,7 +26,12 @@ app.use(morgan('tiny'))
|
|||||||
app.use(express.static(path.join(__dirname, '../public')))
|
app.use(express.static(path.join(__dirname, '../public')))
|
||||||
app.use(express.static(getWebBuildFolderPath()))
|
app.use(express.static(getWebBuildFolderPath()))
|
||||||
|
|
||||||
app.use('/', webRouter)
|
export default setProcessVariables().then(async () => {
|
||||||
app.use('/SASjsApi', apiRouter)
|
// loading these modules after setting up variables due to
|
||||||
|
// multer's usage of process var process.driveLoc
|
||||||
|
const { setupRoutes } = await import('./routes/setupRoutes')
|
||||||
|
setupRoutes(app)
|
||||||
|
|
||||||
export default connectDB().then(() => app)
|
await connectDB()
|
||||||
|
return app
|
||||||
|
})
|
||||||
|
|||||||
9
api/src/routes/setupRoutes.ts
Normal file
9
api/src/routes/setupRoutes.ts
Normal file
@@ -0,0 +1,9 @@
|
|||||||
|
import { Express } from 'express'
|
||||||
|
|
||||||
|
import webRouter from './web'
|
||||||
|
import apiRouter from './api'
|
||||||
|
|
||||||
|
export const setupRoutes = (app: Express) => {
|
||||||
|
app.use('/', webRouter)
|
||||||
|
app.use('/SASjsApi', apiRouter)
|
||||||
|
}
|
||||||
@@ -1,40 +1,19 @@
|
|||||||
import path from 'path'
|
|
||||||
import mongoose from 'mongoose'
|
import mongoose from 'mongoose'
|
||||||
import { configuration } from '../../package.json'
|
|
||||||
import { getDesktopFields } from '.'
|
|
||||||
import { populateClients } from '../routes/api/auth'
|
import { populateClients } from '../routes/api/auth'
|
||||||
import { getRealPath } from '@sasjs/utils'
|
|
||||||
|
|
||||||
export const connectDB = async () => {
|
export const connectDB = async () => {
|
||||||
// NOTE: when exporting app.js as agent for supertest
|
// NOTE: when exporting app.js as agent for supertest
|
||||||
// we should exclude connecting to the real database
|
// we should exclude connecting to the real database
|
||||||
if (process.env.NODE_ENV === 'test') {
|
if (process.env.NODE_ENV === 'test') {
|
||||||
process.driveLoc = path.join(process.cwd(), 'tmp')
|
|
||||||
return
|
return
|
||||||
} else {
|
} else {
|
||||||
const { MODE } = process.env
|
const { MODE } = process.env
|
||||||
|
|
||||||
if (MODE?.trim() !== 'server') {
|
if (MODE?.trim() !== 'server') {
|
||||||
console.log('Running in Destop Mode, no DB to connect.')
|
console.log('Running in Destop Mode, no DB to connect.')
|
||||||
|
return
|
||||||
const { sasLoc, driveLoc } = await getDesktopFields()
|
|
||||||
|
|
||||||
process.sasLoc = sasLoc
|
|
||||||
process.driveLoc = driveLoc
|
|
||||||
} else {
|
|
||||||
const { SAS_PATH, DRIVE_PATH } = process.env
|
|
||||||
|
|
||||||
process.sasLoc = SAS_PATH ?? configuration.sasPath
|
|
||||||
process.driveLoc = getRealPath(
|
|
||||||
path.join(process.cwd(), DRIVE_PATH ?? 'tmp')
|
|
||||||
)
|
|
||||||
}
|
}
|
||||||
|
|
||||||
console.log('sasLoc: ', process.sasLoc)
|
|
||||||
console.log('sasDrive: ', process.driveLoc)
|
|
||||||
|
|
||||||
if (MODE?.trim() !== 'server') return
|
|
||||||
|
|
||||||
mongoose.connect(process.env.DB_CONNECT as string, async (err) => {
|
mongoose.connect(process.env.DB_CONNECT as string, async (err) => {
|
||||||
if (err) throw err
|
if (err) throw err
|
||||||
|
|
||||||
|
|||||||
@@ -13,6 +13,8 @@ export const getWebBuildFolderPath = () =>
|
|||||||
|
|
||||||
export const getTmpFolderPath = () => process.driveLoc
|
export const getTmpFolderPath = () => process.driveLoc
|
||||||
|
|
||||||
|
export const getTmpUploadsPath = () => path.join(getTmpFolderPath(), 'uploads')
|
||||||
|
|
||||||
export const getTmpFilesFolderPath = () =>
|
export const getTmpFilesFolderPath = () =>
|
||||||
path.join(getTmpFolderPath(), 'files')
|
path.join(getTmpFolderPath(), 'files')
|
||||||
|
|
||||||
|
|||||||
@@ -9,6 +9,7 @@ export * from './getDesktopFields'
|
|||||||
export * from './parseLogToArray'
|
export * from './parseLogToArray'
|
||||||
export * from './removeTokensInDB'
|
export * from './removeTokensInDB'
|
||||||
export * from './saveTokensInDB'
|
export * from './saveTokensInDB'
|
||||||
|
export * from './setProcessVariables'
|
||||||
export * from './sleep'
|
export * from './sleep'
|
||||||
export * from './upload'
|
export * from './upload'
|
||||||
export * from './validation'
|
export * from './validation'
|
||||||
|
|||||||
31
api/src/utils/setProcessVariables.ts
Normal file
31
api/src/utils/setProcessVariables.ts
Normal file
@@ -0,0 +1,31 @@
|
|||||||
|
import path from 'path'
|
||||||
|
import { getRealPath } from '@sasjs/utils'
|
||||||
|
|
||||||
|
import { configuration } from '../../package.json'
|
||||||
|
import { getDesktopFields } from '.'
|
||||||
|
|
||||||
|
export const setProcessVariables = async () => {
|
||||||
|
if (process.env.NODE_ENV === 'test') {
|
||||||
|
process.driveLoc = path.join(process.cwd(), 'tmp')
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
const { MODE } = process.env
|
||||||
|
|
||||||
|
if (MODE?.trim() !== 'server') {
|
||||||
|
const { sasLoc, driveLoc } = await getDesktopFields()
|
||||||
|
|
||||||
|
process.sasLoc = sasLoc
|
||||||
|
process.driveLoc = driveLoc
|
||||||
|
} else {
|
||||||
|
const { SAS_PATH, DRIVE_PATH } = process.env
|
||||||
|
|
||||||
|
process.sasLoc = SAS_PATH ?? configuration.sasPath
|
||||||
|
process.driveLoc = getRealPath(
|
||||||
|
path.join(process.cwd(), DRIVE_PATH ?? 'tmp')
|
||||||
|
)
|
||||||
|
}
|
||||||
|
|
||||||
|
console.log('sasLoc: ', process.sasLoc)
|
||||||
|
console.log('sasDrive: ', process.driveLoc)
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user