Skip to content

Instantly share code, notes, and snippets.

@kevinchisholm
Last active May 28, 2018 10:52
Show Gist options
  • Save kevinchisholm/3dbaf9d637928bb81efd6129fbcaaba7 to your computer and use it in GitHub Desktop.
Save kevinchisholm/3dbaf9d637928bb81efd6129fbcaaba7 to your computer and use it in GitHub Desktop.
CRUD application code using nodejs,expressjs and mongodb
'use strict';
var mongoose = require('mongoose'),
Book = mongoose.model('Books');
exports.create_book = function(req, res) {
var new_book = new Book(req.body);
new_book.save(function(err, book) {
if (err)
res.send(err);
res.send(book);
});
};
exports.read_book = function(req, res) {
Book.findById(req.params.bookId, function(err, book) {
if (err)
res.send(err);
res.json(book);
});
};
exports.display_all_books = function(req, res) {
Book.find({}, function(err, book) {
if (err)
res.send(err);
res.json(book);
});
};
exports.update_book = function(req, res) {
Book.findOneAndUpdate({_id:req.params.bookId}, req.body, {new: true}, function(err, book) {
if (err)
res.send(err);
res.json(book);
});
};
exports.delete_book = function(req, res) {
Book.remove({
_id: req.params.bookId
}, function(err, book) {
if (err)
res.send(err);
res.json({ message: 'Book deleted successfully!' });
});
};
'use strict';
var mongoose = require('mongoose');
var Schema = mongoose.Schema;
var BookSchema = new Schema({
bookTitle: {
type: String,
required: true
},
author:{
type: String,
required: true
},
genre:{
type: String,
required: true
},
price:{
type:Number,
required: true
}
});
module.exports = mongoose.model('Books', BookSchema);
'use strict';
module.exports = function(app) {
var bookList = require('../controllers/bookListController');
// todoList Routes
app.route('/books')
.get(bookList.display_all_books)
.post(bookList.create_book);
app.route('/books/:bookId')
.get(bookList.read_book)
.put(bookList.update_book)
.delete(bookList.delete_book);
};
{
"name": "booksapp",
"version": "1.0.0",
"description": "sample book-listing application",
"main": "index.js",
"scripts": {
"start": "nodemon server.js"
},
"author": "Kevin Chisholm",
"license": "ISC",
"devDependencies": {
"nodemon": "^1.17.4"
},
"dependencies": {
"body-parser": "^1.18.3",
"express": "^4.16.3",
"mongoose": "^5.1.1"
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment