added mongose and express, modified server, for testing purpose added user controller, model and routes
This commit is contained in:
@@ -0,0 +1,54 @@
|
||||
'use strict';
|
||||
|
||||
var mongoose = require('mongoose'),
|
||||
User = mongoose.model('User');
|
||||
|
||||
exports.list_all = function(req, res) {
|
||||
User.find({}, function(err, user) {
|
||||
if (err) {
|
||||
res.send(err);
|
||||
}
|
||||
res.json(user);
|
||||
});
|
||||
};
|
||||
|
||||
exports.add_user = function(req, res) {
|
||||
var new_user = new User(req.body);
|
||||
new_user.save(function(err, user) {
|
||||
if (err) {
|
||||
res.send(err);
|
||||
}
|
||||
res.json(user);
|
||||
});
|
||||
};
|
||||
|
||||
exports.get_user = function(req, res) {
|
||||
User.findById(req.params.userId, function(err, user) {
|
||||
if (err) {
|
||||
res.send(err);
|
||||
}
|
||||
res.json(user);
|
||||
});
|
||||
};
|
||||
|
||||
// TODO modify to update user permitions
|
||||
exports.update_user = function(req, res) {
|
||||
User.findOneAndUpdate({_id: req.params.userId}, req.body, {new: true}, function(err, user) {
|
||||
if (err) {
|
||||
res.send(err);
|
||||
}
|
||||
res.json(user);
|
||||
});
|
||||
};
|
||||
|
||||
// TODO modify to remove user permitions / group
|
||||
exports.remove_user = function(req, res) {
|
||||
User.remove({
|
||||
_id: req.params.userId
|
||||
}, function(err, user) {
|
||||
if (err) {
|
||||
res.send(err);
|
||||
}
|
||||
res.json({ message: 'User successfully deleted' });
|
||||
});
|
||||
};
|
||||
@@ -0,0 +1,18 @@
|
||||
'use strict';
|
||||
|
||||
var mongoose = require('mongoose');
|
||||
var Schema = mongoose.Schema;
|
||||
|
||||
var UserSchema = new Schema({
|
||||
// TODO modify later, just for testing
|
||||
name: {
|
||||
type: String,
|
||||
required: 'Name'
|
||||
},
|
||||
Created_date: {
|
||||
type: Date,
|
||||
default: Date.now
|
||||
}
|
||||
});
|
||||
|
||||
module.exports = mongoose.model('User', UserSchema);
|
||||
|
||||
@@ -0,0 +1,15 @@
|
||||
'use strict';
|
||||
|
||||
module.exports = function(app) {
|
||||
var user = require('../controllers/userController');
|
||||
|
||||
// TODO Routes
|
||||
app.route('/users')
|
||||
.get(user.list_all)
|
||||
.post(user.add_user);
|
||||
|
||||
app.route('/users/:userId')
|
||||
.get(user.get_user)
|
||||
.put(user.update_user)
|
||||
.delete(user.remove_user);
|
||||
};
|
||||
131
package-lock.json
generated
131
package-lock.json
generated
@@ -88,6 +88,14 @@
|
||||
"integrity": "sha1-WWZ/QfrdTyDMvCu5a41Pf3jsA2c=",
|
||||
"dev": true
|
||||
},
|
||||
"async": {
|
||||
"version": "2.1.4",
|
||||
"resolved": "https://registry.npmjs.org/async/-/async-2.1.4.tgz",
|
||||
"integrity": "sha1-LSFgx3iAMuTdbL4lAvH5osj2zeQ=",
|
||||
"requires": {
|
||||
"lodash": "4.17.5"
|
||||
}
|
||||
},
|
||||
"async-each": {
|
||||
"version": "1.0.1",
|
||||
"resolved": "https://registry.npmjs.org/async-each/-/async-each-1.0.1.tgz",
|
||||
@@ -127,6 +135,11 @@
|
||||
"integrity": "sha1-RqoXUftqL5PuXmibsQh9SxTGwgU=",
|
||||
"dev": true
|
||||
},
|
||||
"bluebird": {
|
||||
"version": "3.5.0",
|
||||
"resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.5.0.tgz",
|
||||
"integrity": "sha1-eRQg1/VR7qKJdFOop3ZT+WYG1nw="
|
||||
},
|
||||
"body-parser": {
|
||||
"version": "1.18.2",
|
||||
"resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.18.2.tgz",
|
||||
@@ -198,6 +211,11 @@
|
||||
"to-regex": "3.0.1"
|
||||
}
|
||||
},
|
||||
"bson": {
|
||||
"version": "1.0.4",
|
||||
"resolved": "https://registry.npmjs.org/bson/-/bson-1.0.4.tgz",
|
||||
"integrity": "sha1-k8ENOeqltYQVy8QFLz5T5WKwtyw="
|
||||
},
|
||||
"bytes": {
|
||||
"version": "3.0.0",
|
||||
"resolved": "https://registry.npmjs.org/bytes/-/bytes-3.0.0.tgz",
|
||||
@@ -2053,6 +2071,11 @@
|
||||
"integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=",
|
||||
"dev": true
|
||||
},
|
||||
"kareem": {
|
||||
"version": "2.0.4",
|
||||
"resolved": "https://registry.npmjs.org/kareem/-/kareem-2.0.4.tgz",
|
||||
"integrity": "sha512-emosNz0ruOjDkyH2QvnL8m65Mzl8D0IBP3PukQmGl2cjhqMrQajq3OcLdLeBV5GzPfqmsuDQB0WkZOHVhyK6jg=="
|
||||
},
|
||||
"kind-of": {
|
||||
"version": "6.0.2",
|
||||
"resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz",
|
||||
@@ -2077,12 +2100,22 @@
|
||||
"set-getter": "0.1.0"
|
||||
}
|
||||
},
|
||||
"lodash": {
|
||||
"version": "4.17.5",
|
||||
"resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.5.tgz",
|
||||
"integrity": "sha512-svL3uiZf1RwhH+cWrfZn3A4+U58wbP0tGVTLQPbjplZxZ8ROD9VLuNgsRniTlLe7OlSqR79RUehXgpBW/s0IQw=="
|
||||
},
|
||||
"lodash.endswith": {
|
||||
"version": "4.2.1",
|
||||
"resolved": "https://registry.npmjs.org/lodash.endswith/-/lodash.endswith-4.2.1.tgz",
|
||||
"integrity": "sha1-/tWawXOO0+I27dcGTsRWRIs3vAk=",
|
||||
"dev": true
|
||||
},
|
||||
"lodash.get": {
|
||||
"version": "4.4.2",
|
||||
"resolved": "https://registry.npmjs.org/lodash.get/-/lodash.get-4.4.2.tgz",
|
||||
"integrity": "sha1-LRd/ZS+jHpObRDjVNBSZ36OCXpk="
|
||||
},
|
||||
"lodash.isfunction": {
|
||||
"version": "3.0.9",
|
||||
"resolved": "https://registry.npmjs.org/lodash.isfunction/-/lodash.isfunction-3.0.9.tgz",
|
||||
@@ -2237,6 +2270,77 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"mongodb": {
|
||||
"version": "3.0.2",
|
||||
"resolved": "https://registry.npmjs.org/mongodb/-/mongodb-3.0.2.tgz",
|
||||
"integrity": "sha512-E50FmpSQchZAimn2uPIegoNoH9UQYR1yiGHtQPmmg8/Ekc97w6owHoqaBoz+assnd9V5LxMzmQ/VEWMsQMgZhQ==",
|
||||
"requires": {
|
||||
"mongodb-core": "3.0.2"
|
||||
}
|
||||
},
|
||||
"mongodb-core": {
|
||||
"version": "3.0.2",
|
||||
"resolved": "https://registry.npmjs.org/mongodb-core/-/mongodb-core-3.0.2.tgz",
|
||||
"integrity": "sha512-p1B0qwFQUw6C1OlFJnrOJp8KaX7MuGoogRbTaupRt0y+pPRkMllHWtE9V6i1CDtTvI3/3sy2sQwqWez7zuXEAA==",
|
||||
"requires": {
|
||||
"bson": "1.0.4",
|
||||
"require_optional": "1.0.1"
|
||||
}
|
||||
},
|
||||
"mongoose": {
|
||||
"version": "5.0.6",
|
||||
"resolved": "https://registry.npmjs.org/mongoose/-/mongoose-5.0.6.tgz",
|
||||
"integrity": "sha512-VgvQfyO4Un1NxNjlDWscByGEs+JC76jdnxfHO5X83d+LvzWoSkRSVbq+9Zio162DpHnkI5pJy/mI2VdgiiBqZQ==",
|
||||
"requires": {
|
||||
"async": "2.1.4",
|
||||
"bson": "1.0.4",
|
||||
"kareem": "2.0.4",
|
||||
"lodash.get": "4.4.2",
|
||||
"mongodb": "3.0.2",
|
||||
"mongoose-legacy-pluralize": "1.0.2",
|
||||
"mpath": "0.3.0",
|
||||
"mquery": "3.0.0",
|
||||
"ms": "2.0.0",
|
||||
"regexp-clone": "0.0.1",
|
||||
"sliced": "1.0.1"
|
||||
}
|
||||
},
|
||||
"mongoose-legacy-pluralize": {
|
||||
"version": "1.0.2",
|
||||
"resolved": "https://registry.npmjs.org/mongoose-legacy-pluralize/-/mongoose-legacy-pluralize-1.0.2.tgz",
|
||||
"integrity": "sha512-Yo/7qQU4/EyIS8YDFSeenIvXxZN+ld7YdV9LqFVQJzTLye8unujAWPZ4NWKfFA+RNjh+wvTWKY9Z3E5XM6ZZiQ=="
|
||||
},
|
||||
"mpath": {
|
||||
"version": "0.3.0",
|
||||
"resolved": "https://registry.npmjs.org/mpath/-/mpath-0.3.0.tgz",
|
||||
"integrity": "sha1-elj3iem1/TyUUgY0FXlg8mvV70Q="
|
||||
},
|
||||
"mquery": {
|
||||
"version": "3.0.0",
|
||||
"resolved": "https://registry.npmjs.org/mquery/-/mquery-3.0.0.tgz",
|
||||
"integrity": "sha512-WL1Lk8v4l8VFSSwN3yCzY9TXw+fKVYKn6f+w86TRzOLSE8k1yTgGaLBPUByJQi8VcLbOdnUneFV/y3Kv874pnQ==",
|
||||
"requires": {
|
||||
"bluebird": "3.5.0",
|
||||
"debug": "2.6.9",
|
||||
"regexp-clone": "0.0.1",
|
||||
"sliced": "0.0.5"
|
||||
},
|
||||
"dependencies": {
|
||||
"debug": {
|
||||
"version": "2.6.9",
|
||||
"resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
|
||||
"integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
|
||||
"requires": {
|
||||
"ms": "2.0.0"
|
||||
}
|
||||
},
|
||||
"sliced": {
|
||||
"version": "0.0.5",
|
||||
"resolved": "https://registry.npmjs.org/sliced/-/sliced-0.0.5.tgz",
|
||||
"integrity": "sha1-XtwETKTrb3gW1Qui/GPiXY/kcH8="
|
||||
}
|
||||
}
|
||||
},
|
||||
"ms": {
|
||||
"version": "2.0.0",
|
||||
"resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
|
||||
@@ -2612,6 +2716,11 @@
|
||||
"extend-shallow": "2.0.1"
|
||||
}
|
||||
},
|
||||
"regexp-clone": {
|
||||
"version": "0.0.1",
|
||||
"resolved": "https://registry.npmjs.org/regexp-clone/-/regexp-clone-0.0.1.tgz",
|
||||
"integrity": "sha1-p8LgmJH9vzj7sQ03b7cwA+aKxYk="
|
||||
},
|
||||
"registry-auth-token": {
|
||||
"version": "3.3.2",
|
||||
"resolved": "https://registry.npmjs.org/registry-auth-token/-/registry-auth-token-3.3.2.tgz",
|
||||
@@ -2649,6 +2758,20 @@
|
||||
"integrity": "sha1-jcrkcOHIirwtYA//Sndihtp15jc=",
|
||||
"dev": true
|
||||
},
|
||||
"require_optional": {
|
||||
"version": "1.0.1",
|
||||
"resolved": "https://registry.npmjs.org/require_optional/-/require_optional-1.0.1.tgz",
|
||||
"integrity": "sha512-qhM/y57enGWHAe3v/NcwML6a3/vfESLe/sGM2dII+gEO0BpKRUkWZow/tyloNqJyN6kXSl3RyyM8Ll5D/sJP8g==",
|
||||
"requires": {
|
||||
"resolve-from": "2.0.0",
|
||||
"semver": "5.5.0"
|
||||
}
|
||||
},
|
||||
"resolve-from": {
|
||||
"version": "2.0.0",
|
||||
"resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-2.0.0.tgz",
|
||||
"integrity": "sha1-lICrIOlP+h2egKgEx+oUdhGWa1c="
|
||||
},
|
||||
"resolve-url": {
|
||||
"version": "0.2.1",
|
||||
"resolved": "https://registry.npmjs.org/resolve-url/-/resolve-url-0.2.1.tgz",
|
||||
@@ -2663,8 +2786,7 @@
|
||||
"semver": {
|
||||
"version": "5.5.0",
|
||||
"resolved": "https://registry.npmjs.org/semver/-/semver-5.5.0.tgz",
|
||||
"integrity": "sha512-4SJ3dm0WAwWy/NVeioZh5AntkdJoWKxHxcmyP622fOkgHa4z3R0TdBJICINyaSDE6uNwVc8gZr+ZinwZAH4xIA==",
|
||||
"dev": true
|
||||
"integrity": "sha512-4SJ3dm0WAwWy/NVeioZh5AntkdJoWKxHxcmyP622fOkgHa4z3R0TdBJICINyaSDE6uNwVc8gZr+ZinwZAH4xIA=="
|
||||
},
|
||||
"semver-diff": {
|
||||
"version": "2.1.0",
|
||||
@@ -2769,6 +2891,11 @@
|
||||
"integrity": "sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0=",
|
||||
"dev": true
|
||||
},
|
||||
"sliced": {
|
||||
"version": "1.0.1",
|
||||
"resolved": "https://registry.npmjs.org/sliced/-/sliced-1.0.1.tgz",
|
||||
"integrity": "sha1-CzpmK10Ewxd7GSa+qCsD+Dei70E="
|
||||
},
|
||||
"snapdragon": {
|
||||
"version": "0.8.1",
|
||||
"resolved": "https://registry.npmjs.org/snapdragon/-/snapdragon-0.8.1.tgz",
|
||||
|
||||
@@ -21,6 +21,7 @@
|
||||
"nodemon": "^1.15.0"
|
||||
},
|
||||
"dependencies": {
|
||||
"express": "^4.16.2"
|
||||
"express": "^4.16.2",
|
||||
"mongoose": "^5.0.6"
|
||||
}
|
||||
}
|
||||
|
||||
14
server.js
14
server.js
@@ -1,7 +1,19 @@
|
||||
var express = require('express'),
|
||||
app = express(),
|
||||
port = process.env.PORT || 3000;
|
||||
port = process.env.PORT || 3000,
|
||||
mongoose = require('mongoose'),
|
||||
User = require('./api/models/userModel'), //created model loading here
|
||||
bodyParser = require('body-parser');
|
||||
|
||||
// mongoose instance connection url connection
|
||||
mongoose.Promise = global.Promise;
|
||||
mongoose.connect('mongodb://localhost/Userdb');
|
||||
|
||||
app.use(bodyParser.urlencoded({ extended: true }));
|
||||
app.use(bodyParser.json());
|
||||
|
||||
var routes = require('./api/routes/userRoutes'); //importing route
|
||||
routes(app); //register the route
|
||||
app.listen(port);
|
||||
|
||||
console.log('API server started on: ' + port);
|
||||
Reference in New Issue
Block a user