Skip to content

Instantly share code, notes, and snippets.

@jackie-d
Created March 21, 2018 17:10
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save jackie-d/c940b4523954b247fa23e7317b2f8728 to your computer and use it in GitHub Desktop.
Save jackie-d/c940b4523954b247fa23e7317b2f8728 to your computer and use it in GitHub Desktop.
Example NPM + Express + MongoDb
//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