Last active
August 29, 2015 13:57
-
-
Save arisetyo/9581965 to your computer and use it in GitHub Desktop.
MEAN tutorial, Part 1
This file contains hidden or 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
var mongoose = require('mongoose'); | |
var Schema = mongoose.Schema, | |
ObjectId = Schema.ObjectId; | |
// SCHEMAS | |
var User = new Schema({ | |
fullname: {type: String, required: true}, | |
email: {type: String, required: true}, | |
password: {type: String, required: true} | |
}); | |
// EXPORTS | |
module.exports.mongoose = mongoose; | |
module.exports.SchemaUser = User; | |
mongoose.connect('mongodb://localhost/belajarnode'); |
This file contains hidden or 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
//server.js | |
var application_root = __dirname, | |
express = require('express'), | |
path = require("path"), | |
url = require("url"), | |
request = require("request"), | |
User = require('./routes/user'); | |
var app = express(); | |
app.configure(function () { | |
app.use(express.logger('dev')); | |
app.use(express.json()); | |
app.use(express.urlencoded()); | |
app.use(app.router); | |
app.use(express.static(path.join(application_root, "public"))); | |
}); | |
//-------------------- USER -------------------- | |
app.post('/api/user/create/', function(req, res){ | |
User.CreateDoc(req, function(err, success) { | |
if(err) throw err; | |
else res.send(success); | |
}); | |
}); | |
app.get('/api/user/retrieveall/', function(req, res) { | |
User.RetrieveAll(function(err, success) { | |
if(err) throw err; | |
else res.send(success); | |
}); | |
}); | |
app.get('/api/user/retrieveid/:id', function(req, res) { | |
User.RetrieveById(req.params.id, function(err, success) { | |
if(err) throw err; | |
else res.send(success); | |
}); | |
}); | |
app.post('/api/user/update', function(req, res) { | |
User.UpdateDoc(req, function(err, success) { | |
if(err) throw err; | |
else res.send(success); | |
}); | |
}); | |
app.post('/api/user/delete', function(req, res) { | |
User.DeleteDoc(req.body.id, function(err, success) { | |
if(err) throw err; | |
else res.send(success); | |
}); | |
}); | |
//======================= START SERVER ====================== | |
app.listen(8090); | |
console.log('testing server is listening on port 8090...'); |
This file contains hidden or 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
var db = require('../db'); | |
var ModelUser = db.mongoose.model('User', db.SchemaUser); | |
/* | |
* ***************** | |
* MODULES TO EXPORT | |
* ***************** | |
*/ | |
module.exports.CreateDoc = CreateDoc; | |
module.exports.RetrieveAll = RetrieveAll; | |
module.exports.RetrieveById = RetrieveById; | |
module.exports.UpdateDoc = UpdateDoc; | |
module.exports.DeleteDoc = DeleteDoc; | |
/* | |
* ********* | |
* FUNCTIONS | |
* ********* | |
*/ | |
function CreateDoc(req, callback) { | |
var instance = new ModelUser(); | |
instance.fullname = req.body.fullname; | |
instance.email = req.body.email; | |
instance.password = req.body.password; | |
instance.save(function (err,doc) { | |
if(err) callback(err); | |
else callback(null, {"status":"OK","new_id":doc._id}); | |
}); | |
} | |
function RetrieveAll(callback) { | |
ModelUser.find({}, callback); | |
} | |
function RetrieveById(id, callback) { | |
ModelUser.findOne({_id:id}, callback); | |
} | |
function UpdateDoc(req, callback) { | |
var newValues = { | |
"fullname": req.body.fullname, | |
"email": req.body.email, | |
"password": req.body.password, | |
}; | |
ModelUser.update( {_id:req.body.id}, {"$set":newValues}, function (err) { | |
if(err) callback(err); | |
else callback(null, {"status":"OK"}); | |
}); | |
} | |
function DeleteDoc(id, callback) { | |
ModelUser.remove( {_id:id}, function (err) { | |
if(err) callback(err); | |
else callback(null, {"status":"OK"}); | |
}); | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment