Skip to content

Instantly share code, notes, and snippets.

@loopDelicious
Last active November 23, 2016 20:22
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save loopDelicious/8773a4e8ea0832a6e3c644e2fc1d8e38 to your computer and use it in GitHub Desktop.
Save loopDelicious/8773a4e8ea0832a6e3c644e2fc1d8e38 to your computer and use it in GitHub Desktop.
CRUD example endpoints
var express = require('express');
var request = require('request');
var bodyParser = require('body-parser');
var key = require('../secrets.js');
var app = express();
// allow CORS access
app.use(function(req, res, next) {
res.header("Access-Control-Allow-Origin", "*");
res.header("Access-Control-Allow-Headers", "Origin, X-Requested-With, Content-Type, Accept");
res.header("Access-Control-Allow-Methods", "GET, PUT, POST, DELETE, OPTIONS");
res.header("Content-Type", "application/json");
next();
});
app.use(bodyParser.json());
app.use(bodyParser.urlencoded({ extended: false }));
var baseUrl = 'https://api.mlab.com/api/1';
// GET request to return ALL exercises from db
app.get('/all', function (req, res) {
var url = baseUrl + '/databases/fitness/collections/exercises?apiKey=' + key;
request.get(url, function (error, response, body) {
if (!error && response.statusCode == 200) {
var info = JSON.parse(body);
res.send(info);
} else {
res.status(400).send(error);
}
});
});
// POST request to ADD a new exercise to db
app.post('/add', function(req, res) {
var data = {
title: req.body.title.toLowerCase(),
benefit: req.body.benefit.toLowerCase()
};
var url = baseUrl + '/databases/fitness/collections/exercises?apiKey=' + key;
request.post({
url: url,
body: JSON.stringify(data),
headers: {
'Content-Type': 'application/json'
}
}, function (error, response, body) {
if (!error && response.statusCode == 200) {
res.send(body);
} else {
res.status(400).send(body);
}
});
});
// PUT request to EDIT an exercise in db
app.put('/edit', function(req, res) {
var data = {
title: req.body.title,
benefit: req.body.benefit
};
var id = req.body._id;
var url = baseUrl + '/databases/fitness/collections/exercises' + encodeURIComponent(id) + '?apiKey=' + key;
request.put({
url: url,
body: JSON.stringify(data),
headers: {
'Content-Type': 'application/json'
}
}, function (error, response, body) {
if (!error && response.statusCode == 200) {
res.send(body);
} else {
res.status(400).send(error);
}
});
});
// DELETE request to DELETE an exercise from db
app.delete('/delete', function(req, res) {
var id = req.body.id;
var url = baseUrl + '/databases/fitness/collections/exercises/' + encodeURIComponent(id) + '?apiKey=' + key;
request.delete(url, function (error, response, body) {
if (!error && response.statusCode == 200) {
res.json(body);
} else {
res.status(400).json(error);
}
});
});
app.listen(process.env.PORT || 5000);
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment