Created
January 8, 2019 13:23
-
-
Save reymon359/7ead8ab5ce348a2794ecd0b97f228239 to your computer and use it in GitHub Desktop.
basic node express CRUD
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
const express = require('express'); | |
let app = express(); | |
let example = require('../models/example'); | |
// Create a new example | |
app.post('/example', (req, res) => { | |
let body = req.body; | |
let example = new example({ | |
name: body.name, | |
description: req.description | |
}) | |
example.save((err, exampleDB) => { | |
if (err) { | |
return res.status(500).json({ | |
ok: false, | |
err | |
}); | |
} | |
if (!exampleDB) { | |
return res.status(400).json({ | |
ok: false, | |
err | |
}); | |
} | |
res.json({ | |
ok: true, | |
example: exampleDB | |
}); | |
}); | |
}); | |
// Get all examples (sorted by description) | |
app.get('/example', (req, res) => { | |
example.find({}) | |
.sort('description') | |
.exec((err, examples) => { | |
if (err) { | |
return res.status(500).json({ | |
ok: false, | |
err | |
}); | |
} | |
res.json({ | |
ok: true, | |
examples | |
}); | |
}); | |
}); | |
// Get an example by id | |
app.get('/example/:id', (req, res) => { | |
let id = req.params.id; | |
example.findById(id, (err, exampleDB) => { | |
if (err) { | |
return res.status(500).json({ | |
ok: false, | |
err | |
}); | |
} | |
if (!exampleDB) { | |
return res.status(500).json({ | |
ok: false, | |
err: { | |
message: 'The id is not valid' | |
} | |
}); | |
} | |
res.json({ | |
ok: true, | |
example: exampleDB | |
}); | |
}) | |
}); | |
// Update an example | |
app.put('/example/:id', (req, res) => { | |
let id = req.params.id; | |
let body = req.body; | |
let descexample = { | |
description: body.description | |
}; | |
example.findByIdAndUpdate(id, descexample, { new: true, runValidators: true, context: 'query' }, (err, exampleDB) => { | |
if (err) { | |
return res.status(400).json({ | |
ok: false, | |
err | |
}); | |
} | |
if (!exampleDB) { | |
return res.status(400).json({ | |
ok: false, | |
err | |
}); | |
} | |
res.json({ | |
ok: true, | |
example: exampleDB | |
}); | |
}); | |
}); | |
// Delete an example | |
app.delete('/example/:id', (req, res) => { | |
let id = req.params.id; | |
example.findByIdAndRemove(id, (err, exampleDB) => { | |
if (err) { | |
return res.status(500).json({ | |
ok: false, | |
err | |
}); | |
} | |
if (!exampleDB) { | |
return res.status(400).json({ | |
ok: false, | |
err: { | |
message: 'The id doesnt exists' | |
} | |
}); | |
} | |
res.json({ | |
ok: true, | |
message: 'example deleted' | |
}); | |
}); | |
}); | |
module.exports = app; |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment