Skip to content

Commit d43daeb

Browse files
added simple user controller
1 parent 4cc571a commit d43daeb

File tree

12 files changed

+363
-75
lines changed

12 files changed

+363
-75
lines changed

.env

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
MONGODB_URI=mongodb+srv://seekersdb:[email protected]/users?retryWrites=true&w=majority
2+
PORT=3001

.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1 +1,2 @@
11
node_modules
2+
.env

data.js

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
// fname : 'Bruce',
2+
// lname : "Wayne",
3+
// currentYear:2,
4+
// yearOfPassing:2022,
5+
// cgpa: 7.47,
6+
// sgpa: 8.50,
7+
// portfolio: "https://helloajaysingh.me",
8+
// github: "https://github.com",
9+
// linkedin: "https://linkedin.com",
10+
// resume:"https://docs.google.com/document/d/1bQbwd53IMvrZ049yerihRAcpNbhOLnWKXYfu6VlvGnA/",

index.js

Lines changed: 35 additions & 35 deletions
Original file line numberDiff line numberDiff line change
@@ -1,45 +1,31 @@
1-
const { request } = require('express')
21
const express = require('express')
32
const cors = require('cors')
3+
require('dotenv').config()
4+
const User = require('./models/user')
45
const app = express()
56

67
app.use(cors())
7-
8-
let users = [
9-
{
10-
id: 1,
11-
fname: "Ajay",
12-
lname: "Singh",
13-
14-
},
15-
{
16-
id: 2,
17-
fname: "John",
18-
lname: "john",
19-
20-
},
21-
{
22-
id: 3,
23-
fname: "carl",
24-
lname: "johnson",
25-
26-
},
27-
]
8+
app.use(express.json())
289

2910
app.get('/', (request, response) => {
30-
response.send("hello mf")
11+
response.send("Hello there")
3112
})
3213

3314
app.get('/api/users', (request, response) => {
34-
response.json(users)
15+
User.find({}).then(users => {
16+
response.json(users)
17+
})
3518
})
3619

3720
app.get('/api/users/:id', (request, response) => {
38-
const id = Number(request.params.id)
39-
const user = users.find(user => user.id === id)
40-
user
41-
? response.json(user)
42-
: response.status(404).end()
21+
const id = request.params.id
22+
console.log(id)
23+
User.findById(id)
24+
.then(user => {
25+
user
26+
? response.json(user)
27+
: response.status(404).end()
28+
})
4329
})
4430

4531
app.delete('/api/users/:id', (request, response) => {
@@ -50,12 +36,26 @@ app.delete('/api/users/:id', (request, response) => {
5036
})
5137

5238
app.post('/api/users/', (request, response) => {
53-
// const user = request.body
54-
newId = Math.max(...users.map(user => user.id))
55-
console.log(newId + 1)
56-
// const updatedUsers = users.concat(user)
57-
// response.json(updatedUsers)
58-
// response.status(201).end()
39+
const user = request.body
40+
41+
const newUser = new User({
42+
"email": user.email,
43+
"fname": user.fname,
44+
"lname": user.lname,
45+
"password": user.password
46+
})
47+
48+
if(!email || !fname || !lname || !password) {
49+
response.json({error:"some Field(s) is/are missing"})
50+
}
51+
newUser.save()
52+
.then(result => {
53+
response.status(200)
54+
response.json(newUser)
55+
}).catch(error => {
56+
console.log("error occured while saving the user", error);
57+
json.response({error: error})
58+
})
5959
})
6060

6161
const unknownEndpoint = (request, response) => {

models/user.js

Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
const mongoose = require('mongoose')
2+
3+
const url = process.env.MONGODB_URI
4+
5+
console.log("connecting to", url);
6+
mongoose.connect(url, { useNewUrlParser: true, useUnifiedTopology: true, useFindAndModify: false, useCreateIndex: true })
7+
.then(result => {
8+
console.log("connected to mongodb", url);
9+
}).catch(error => {
10+
console.log("error while connecting to mongodb", error);
11+
})
12+
13+
const userSchema = new mongoose.Schema({
14+
email: String,
15+
fname: String,
16+
lname: String,
17+
password: String,
18+
})
19+
20+
userSchema.set('toJSON', {
21+
transform: (document, returnedObject) => {
22+
returnedObject.id = returnedObject._id.toString()
23+
delete returnedObject._id
24+
delete returnedObject.__v
25+
delete returnedObject.password
26+
}
27+
})
28+
29+
module.exports = mongoose.model('User', userSchema)

mongo.js

Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,36 @@
1+
const mongoose = require('mongoose')
2+
3+
if (process.argv.length < 3) {
4+
console.log('Please provide the password as an argument: node mongo.js <password>')
5+
process.exit(1)
6+
}
7+
8+
const url =
9+
`mongodb+srv://seekersdb:[email protected]/users?retryWrites=true&w=majority`
10+
11+
mongoose.connect(url, { useNewUrlParser: true, useUnifiedTopology: true, useFindAndModify: false, useCreateIndex: true })
12+
13+
const userSchema = new mongoose.Schema({
14+
email: String,
15+
password: String,
16+
})
17+
18+
User = mongoose.model('User', userSchema)
19+
20+
const user = new User({
21+
22+
password: 'changeme'
23+
})
24+
25+
User.find({}).then(result => {
26+
result.forEach(user => {
27+
console.log(user)
28+
})
29+
mongoose.connection.close()
30+
})
31+
32+
33+
// user.save().then(result => {
34+
// console.log('user details! are saved')
35+
// mongoose.connection.close()
36+
// })

0 commit comments

Comments
 (0)