-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathapp.js
More file actions
83 lines (64 loc) · 2.01 KB
/
app.js
File metadata and controls
83 lines (64 loc) · 2.01 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
require('dotenv').config();
var restify = require('restify');
var mongoose = require('mongoose');
var Person = require('./models/person');
const DBUSER = process.env.DBUSER;
const DBPWD = process.env.DBPWD;
const DBLINK = process.env.DBLINK;
mongoose.Promise = global.Promise;
mongoose.connect(`mongodb://${DBUSER}:${DBPWD}@${DBLINK}`);
var server = restify.createServer();
server.use(restify.plugins.bodyParser());
server.get('/helloworld', function(req,res) {
res.send(200,{message:'hello world'});
});
server.post('/helloworld', function(req, res) {
res.send(200, {message:'Hello world post'});
});
server.get('/hello/:name', function(req,res) {
res.send(200,{message:'hello ' +req.params.name});
});
server.post('/hello', function(req, res) {
res.send(200, {message:'Hello world ' +req.body.name});
});
server.post('/person', function(req, res, next){
var person = new Person();
person.firstName = req.body.firstName;
person.lastName = req.body.lastName;
person.save(function(err){
if(err) res.send(400, {error: err.message});
res.send(200,{id:person.id});
})
});
server.get('/person/:id', function(req, res){
Person.findById(req.params.id, function(err, person){
if(err) res.send(400, {error: err.message});
res.send(200, {person: person});
})
});
server.get('/person', function(req, res) {
Person.find({}, function(err, docs) {
res.send(200, docs);
})
});
server.get('/randomperson', function (req,res) {
Person.findOne({}, function(err,doc) {
server.get('/findrandomperson', function (req,res) {
// Get the count of all users
Person.count().exec(function (err, count) {
// Get a random entry
res.send(200,doc);
})
});
var random = Math.floor(Math.random() * count)
// Again query all users but only fetch one offset by our random #
Person.findOne().skip(random).exec(
function (err, doc) {
// Tada! random user
res.send(200,doc);
})
})
});
server.listen(process.env.PORT || 8080, function () {
console.log('%s listening at %s', server.name, server.url);
});