express.js 1.63 KB
Newer Older
Yoon, Daeki's avatar
Yoon, Daeki committed
1
2
3
4
5
6
const express = require('express')
const bodyParser = require('body-parser')
const cors = require('cors')
const helmet = require('helmet')
const path = require('path')

Yoon, Daeki's avatar
Yoon, Daeki committed
7
8
9
10
11
12
const indexRouter = require('./routes/index');
const usersRouter = require('./routes/users');
const loginRouter = require('./routes/login');
const reservesRouter = require('./routes/reserves');
const noticeRouter = require('./routes/notices');
const writesRouter = require('./routes/writes');
Yoon, Daeki's avatar
Yoon, Daeki committed
13

Yoon, Daeki's avatar
Yoon, Daeki committed
14
15
16
17
18
19
20
// 배포용?
const isProduction = process.env.NODE_ENV === 'production'
let root_url = '/'
if (isProduction) {
  root_url = '/app/rental'
}

Daeki Yoon's avatar
Daeki Yoon committed
21
22
console.log('isProductiion=', isProduction)

Yoon, Daeki's avatar
Yoon, Daeki committed
23
24
25
26
27
const CURRENT_WORKING_DIR = process.cwd()
const app = express()

app.use(bodyParser.json())
app.use(bodyParser.urlencoded({ extended: true }))
Yoon, Daeki's avatar
Yoon, Daeki committed
28
// app.use(helmet())
Yoon, Daeki's avatar
Yoon, Daeki committed
29
30
app.use(cors())

Yoon, Daeki's avatar
Yoon, Daeki committed
31
console.log('path=', path.join(CURRENT_WORKING_DIR, 'client', 'build'))
Daeki Yoon's avatar
Daeki Yoon committed
32
app.use(path.join(root_url, '/'), express.static(path.join(CURRENT_WORKING_DIR, 'client', 'build')))
Yoon, Daeki's avatar
Yoon, Daeki committed
33

Yoon, Daeki's avatar
Yoon, Daeki committed
34
35
36
37
38
39
app.use(path.join(root_url, '/api/'), indexRouter);
app.use(path.join(root_url, '/api/users'), usersRouter, reservesRouter);
app.use(path.join(root_url, '/api/login'), loginRouter);
app.use(path.join(root_url, '/api/reserves'), reservesRouter);
app.use(path.join(root_url, '/api/notices'), noticeRouter);
app.use(path.join(root_url, '/api/writes'), writesRouter);
Yoon, Daeki's avatar
Yoon, Daeki committed
40
41
42
43
44
45
46
47
48
49
50
51
52
53

app.use((err, req, res, next) => {
  if (err.name === 'UnauthorizedError') {
    res.status(401).json({
      error: err.name + ': ' + err.message
    })
  } else if (err) {
    res.status(400).json({
      error: err.name + ': ' + err.message
    })
    console.log(err)
  }
})

Daeki Yoon's avatar
Daeki Yoon committed
54
module.exports = app