Reputation: 11
I am new to Express.js and I am currently designing an app with CRD operations. In that I don't want to insert duplicate username. Can you help me in that about what to add in this file and js file or give any hint so that I can proceed.
var express = require('express');
var router = express.Router();
/* GET userlist. */
router.get('/userlist', function(req, res) {
var db = req.db;
var collection = db.get('userlist');
collection.find({},{},function(e,docs){
res.json(docs);
});
});
/* POST to adduser. */
router.post('/adduser', function(req, res) {
var db = req.db;
var collection = db.get('userlist');
collection.insert(req.body, function(err, result){
res.send(
(err === null) ? { msg: '' } : { msg: err }
);
});
});
/* DELETE to deleteuser. */
router.delete('/deleteuser/:id', function(req, res) {
var db = req.db;
var collection = db.get('userlist');
var userToDelete = req.params.id;
collection.remove({ '_id' : userToDelete }, function(err) {
res.send((err === null) ? { msg: '' } : { msg:'error: ' + err });
});
});
module.exports = router;
Upvotes: 0
Views: 489
Reputation: 11
You can create a scheme like this for mongoDB collections using mongoose:
const mongoose = require('mongoose');
const Schema = mongoose.Schema;
const userSchema = new Schema({
username: {
type: String,
required: true,
unique: true,
},
});
const User = mongoose.model('User', userSchema);
module.exports = User;
and you can use it like this:
let User = require('../models/user.model');
router.post('/adduser', function(req,res) {
const username = req.body.username;
const newUser = new User({username});
newUser.save()
.then(() => res.json('User added!'))
.catch(err => res.status(400).json('Error: ' + err));
});
Upvotes: 1