const express = require('express') const cors = require('cors') const app = express() const port = 3000 // cors - allow connection from different domains and ports app.use(cors()) // convert json string to json object (from request) app.use(express.json()) // mongo const mongoose = require('mongoose') const mongoDB = 'mongodb+srv://eemuli:N33k3r123@test.147x5qr.mongodb.net/hyppynet' mongoose.connect(mongoDB, {useNewUrlParser: true, useUnifiedTopology: true}) const db = mongoose.connection db.on('error', console.error.bind(console, 'connection error:')) db.once('open', function() { console.log("Database test connected") }) // scheema const jumpSchema = new mongoose.Schema({ number: { type: String, required: true }, date: { type: String, required: true }, height: { type: String, required: true }, falltime: { type: String, required: true } }) // model const Jump = mongoose.model('Jump', jumpSchema, 'jumps') app.post('/jumps', async (request, response) => { console.log(request.body) const { number, date, height, falltime } = request.body console.log(number, date, height, falltime) const jump = new Jump({ number: number, date: date, height: height, falltime: falltime }) const savedJump = await jump.save() response.json(savedJump) }) app.get('/jumps/:id', async (request, response) => { const jump = await Jump.findById(request.params.id) if (jump) { response.json(jump) } else { response.status(404).end() } }) app.get('/jumps', async (request, response) => { const jumps = await Jump.find({}) response.json(jumps) }) app.delete('/jumps/:id', async (request, response) => { const deletedJump = await Jump.findByIdAndRemove(request.params.id) if (deletedJump) response.json(deletedJump) else response.status(404).end() }) // update user data app.put('/jumps/:id', async (request, response) => { const { text } = request.body const { id } = request.params const jump = await Jump.findByIdAndUpdate( id, {'text': text}, {'new': true} ) response.json(jump) }) // app listen port 3000 app.listen(port, () => { console.log('Example app listening on port 3000') })