mirror of
https://github.com/linuxserver/heimdalljs.git
synced 2026-02-20 05:12:24 +08:00
79 lines
1.9 KiB
JavaScript
79 lines
1.9 KiB
JavaScript
// const env = process.env.NODE_ENV || 'development'
|
|
const express = require('express')
|
|
// const path = require('path')
|
|
const cookieParser = require('cookie-parser')
|
|
const logger = require('morgan')
|
|
const path = require('path')
|
|
const config = require('./config/config')
|
|
const fs = require('fs')
|
|
|
|
const indexRouter = require('./routes/index')
|
|
const usersRouter = require('./routes/users')
|
|
const itemsRouter = require('./routes/items')
|
|
const settingsRouter = require('./routes/settings')
|
|
const enhancedRouter = require('./routes/enhanced')
|
|
|
|
const app = express()
|
|
|
|
app.use(logger('dev'))
|
|
app.use(express.json())
|
|
app.use(express.urlencoded({ extended: false }))
|
|
app.use(cookieParser())
|
|
// app.use(express.static(path.join(__dirname, 'public')))
|
|
|
|
/**
|
|
* Set up and register passport for authentication
|
|
*/
|
|
const passport = require('passport')
|
|
app.use(passport.initialize())
|
|
require('./passport')(passport)
|
|
|
|
/**
|
|
* Handle CORS
|
|
*/
|
|
const cors = require('cors')
|
|
app.use(
|
|
cors({
|
|
// ...(env === 'development' ? { origin: 'http://localhost:8080' } :
|
|
origin: true,
|
|
credentials: true
|
|
})
|
|
)
|
|
|
|
// Create upload directories
|
|
for (const subdir of ['avatars', 'icons', 'backgrounds']) {
|
|
fs.mkdirSync(path.resolve(path.join(config.uploadDir, subdir)), {
|
|
recursive: true
|
|
})
|
|
}
|
|
|
|
app.use(express.static(path.join(__dirname, './dist/spa/')))
|
|
app.use(express.static(config.uploadDir))
|
|
|
|
/**
|
|
* Authentication middleware to attach the currently logged
|
|
* in user to the request
|
|
*/
|
|
const auth = require('./middleware/auth')
|
|
app.use(auth.authorize)
|
|
|
|
app.use('/', indexRouter)
|
|
app.use('/users', usersRouter)
|
|
app.use('/items', itemsRouter)
|
|
app.use('/settings', settingsRouter)
|
|
app.use('/enhanced', enhancedRouter)
|
|
|
|
// Our own error handler to make sure everything returns as JSON
|
|
app.use((err, req, res, next) => {
|
|
if (err) {
|
|
return res.status(500).json({
|
|
status: 'error',
|
|
result: err.message
|
|
})
|
|
}
|
|
|
|
return next()
|
|
})
|
|
|
|
module.exports = app
|