From 3d632682d5b4fc1a3865d933557a92a38d00e839 Mon Sep 17 00:00:00 2001 From: Karolin Rafalski Date: Sun, 5 May 2019 12:32:53 -0400 Subject: [PATCH] udate cors --- controllers/holidays.js | 9 ++++++--- models/holidays.js | 10 +++++----- server.js | 15 +++++++++++++-- 3 files changed, 24 insertions(+), 10 deletions(-) diff --git a/controllers/holidays.js b/controllers/holidays.js index ec1b2b6..1da4d32 100644 --- a/controllers/holidays.js +++ b/controllers/holidays.js @@ -1,3 +1,4 @@ +const cors = require('cors') const express = require('express') const holidays = express.Router() const Holiday = require('../models/holidays.js') @@ -5,13 +6,15 @@ const Holiday = require('../models/holidays.js') holidays.post('/', async (req, res) => { Holiday.create(req.body, (error, createdHoliday) => { if (error) { - res.status(400).json({ error: error.message }) + console.log(error) + res.status(418).json({ error: error }) + } else { + res.status(200).send(createdHoliday) // .json() will send proper headers in response so client knows it's json coming back } - res.status(200).send(createdHoliday) // .json() will send proper headers in response so client knows it's json coming back }) }) -holidays.get('/', (req, res) => { +holidays.get('/', cors(), (req, res) => { Holiday.find({}, (err, foundHolidays) => { if (err) { res.status(400).json({ error: err.message }) diff --git a/models/holidays.js b/models/holidays.js index 149d868..1a3aaaa 100644 --- a/models/holidays.js +++ b/models/holidays.js @@ -1,11 +1,11 @@ const mongoose = require('mongoose') const holidaySchema = mongoose.Schema({ - name: {type: String, required: true}, - celebrated: {type: Boolean, default: false}, - description: {type: String, default: 'Best holiday ever!'}, - likes: {type: Number, default: 0}, - tags: [{type: String}] + name: { type: String, required: true }, + celebrated: { type: Boolean, default: false }, + description: { type: String, default: 'Best holiday ever!' }, + likes: { type: Number, default: 0 }, + tags: [{ type: String }] }) module.exports = mongoose.model('Holiday', holidaySchema) diff --git a/server.js b/server.js index 51db00c..ae4b69a 100644 --- a/server.js +++ b/server.js @@ -6,11 +6,22 @@ const mongoose = require('mongoose') require('dotenv').config() const app = express() const PORT = process.env.PORT -const MONGODB_URI = process.env.MONGODB_URI +const MONGODB_URI = process.env.MONGODB_URI + '/merncrud' + +const whitelist = ['http://localhost:3000', 'https://fathomless-sierra-68956.herokuapp.com'] +const corsOptions = { + origin (origin, callback) { + if (whitelist.indexOf(origin) !== -1) { + callback(null, true) + } else { + callback(new Error('Not allowed by CORS')) + } + } +} // middleware app.use(express.json()) // use .json(), not .urlencoded() -app.use(cors()) +app.use(cors(corsOptions)) // Error / Disconnection mongoose.connection.on('error', err => console.log(err.message + ' is Mongod not running?'))