51 lines
1.2 KiB
JavaScript
51 lines
1.2 KiB
JavaScript
const express = require("express")
|
|
const path = require("path")
|
|
|
|
const db = require("./models")
|
|
const Airport = db['Airport']
|
|
const Flight = db['Flight']
|
|
|
|
db.sequelize.sync().then(() => console.log("DB synced."))
|
|
|
|
const PORT = process.env.PORT || 3001
|
|
|
|
const app = express()
|
|
|
|
app.use(express.static(path.resolve(__dirname, '../client/build')))
|
|
app.use(express.json())
|
|
|
|
app.get("/api", (req, res) => {
|
|
res.json({ message: "Hello from server!" })
|
|
})
|
|
|
|
app.get("/api/airports", (req, res) => {
|
|
Airport.findAll().then(airports => res.json(airports))
|
|
})
|
|
|
|
app.get("/api/airport/:id", (req, res) => {
|
|
const id = req.params.id
|
|
Airport.findByPk(id).then(data => {
|
|
if (data)
|
|
res.json(data)
|
|
else
|
|
res.status(404).json({message: `Cannot find airport with id=${id}`})
|
|
})
|
|
})
|
|
|
|
app.get("/api/flights/:dep_icao", (req, res) => {
|
|
const dep_icao = req.params.dep_icao
|
|
Flight.findAll({where: {dep_icao: dep_icao}}).then(data => {
|
|
if (data)
|
|
res.json(data)
|
|
else
|
|
res.status(500).json({message: `An error occurred while fetching flights.`})
|
|
})
|
|
})
|
|
|
|
app.get('*', (req, res) => {
|
|
res.sendFile(path.resolve(__dirname, '../client/build', req.path))
|
|
})
|
|
|
|
app.listen(PORT, () => {
|
|
console.log(`Server listening on ${PORT}`)
|
|
}) |