Created
March 21, 2018 17:10
-
-
Save jackie-d/c940b4523954b247fa23e7317b2f8728 to your computer and use it in GitHub Desktop.
Example NPM + Express + MongoDb
This file contains 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
//include express library | |
const express = require('express'); | |
const app = express(); | |
//include mongodb client library | |
const MongoDb = require('mongodb').MongoClient; | |
//declare the parameters to connect to MongoDB server and DB | |
const mongoDbUrl = 'mongodb://localhost:27017'; | |
const mongoDbDatabaseName = 'rest-api'; | |
const writeUserToDb = (req, res) => { | |
MongoDb.connect(mongoDbUrl,(err,client) => { | |
const db = client.db(mongoDbDatabaseName); | |
const collection = db.collection('users'); | |
var myUsername = req.query.name; | |
var myUser = { name: myUsername, role: 'admin' }; | |
collection.insert(myUser,(err,result) => { | |
res.send("Object created: " + JSON.stringify(myUser) ); | |
}); | |
client.close(); | |
}); | |
}; | |
const readUsersFromDb = (req,res) => { | |
MongoDb.connect(mongoDbUrl,(err,client) => { | |
const db = client.db(mongoDbDatabaseName); | |
const collection = db.collection('users'); | |
collection.find({}).toArray((err,docs) => { | |
res.send(JSON.stringify(docs)); | |
}); | |
client.close(); | |
}); | |
}; | |
const readUserFromDb = (req,res) => { | |
MongoDb.connect(mongoDbUrl,(err,client) => { | |
const db = client.db(mongoDbDatabaseName); | |
const collection = db.collection('users'); | |
var nameToSearch = req.query.name; | |
collection.find({name: nameToSearch}).toArray((err,docs) => { | |
res.send(JSON.stringify(docs)); | |
}); | |
client.close(); | |
}); | |
}; | |
const updateUserOnDb = (req,res) => { | |
MongoDb.connect(mongoDbUrl,(err,client) => { | |
const db = client.db(mongoDbDatabaseName); | |
const collection = db.collection('users'); | |
var nameToSearch = req.query.nameToSearch; | |
var nameToReplace = req.query.nameToReplace; | |
var newUser = { name: nameToReplace, role: 'admin' }; | |
collection.update({name: nameToSearch},newUser); | |
res.send("Updated"); | |
client.close(); | |
}); | |
}; | |
app.get('/writeUser',writeUserToDb); | |
app.get('/readUsers',readUsersFromDb); | |
app.get('/readUser',readUserFromDb); | |
app.get('/updateUser',updateUserOnDb); | |
app.get('/', (req, res) => { | |
var input = req.query.name; | |
res.send('L\'utente si chiama: '+input); | |
}); | |
app.listen(3000, () => { | |
console.log('Server ready'); | |
}); |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment