├── .gitignore
├── Procfile
├── app.js
├── client
├── .gitignore
├── README.md
├── package-lock.json
├── package.json
├── public
│ ├── favicon.ico
│ ├── index.html
│ ├── logo192.png
│ ├── logo512.png
│ ├── manifest.json
│ ├── profile.png
│ └── robots.txt
└── src
│ ├── App.css
│ ├── App.js
│ ├── App.test.js
│ ├── components
│ ├── Details.js
│ ├── Edit.js
│ ├── Home.js
│ ├── Navbaar.js
│ ├── Register.js
│ └── context
│ │ └── ContextProvider.js
│ ├── index.css
│ ├── index.js
│ └── logo.svg
├── db
└── conn.js
├── models
└── userSchema.js
├── package-lock.json
├── package.json
└── routes
└── router.js
/.gitignore:
--------------------------------------------------------------------------------
1 | node_modules
2 |
3 | .env
--------------------------------------------------------------------------------
/Procfile:
--------------------------------------------------------------------------------
1 | web:node app.js
--------------------------------------------------------------------------------
/app.js:
--------------------------------------------------------------------------------
1 | require("dotenv").config();
2 | const express = require("express");
3 | const app = express();
4 | const mongoose = require("mongoose");
5 | require("./db/conn");
6 | const users = require("./models/userSchema");
7 | const cors = require("cors");
8 | const router = require("./routes/router");
9 |
10 | const port = process.env.PORT || 8003;
11 |
12 | app.use(cors());
13 | app.use(express.json());
14 |
15 | app.get("/",(req,res)=>{
16 | res.json("server start")
17 | })
18 |
19 | app.use(router);
20 |
21 | app.listen(port, () => {
22 | console.log(`server is start port number ${port}`);
23 | });
--------------------------------------------------------------------------------
/client/.gitignore:
--------------------------------------------------------------------------------
1 | # See https://help.github.com/articles/ignoring-files/ for more about ignoring files.
2 |
3 | # dependencies
4 | /node_modules
5 | /.pnp
6 | .pnp.js
7 |
8 | # testing
9 | /coverage
10 |
11 | # production
12 | /build
13 |
14 | # misc
15 | .DS_Store
16 | .env.local
17 | .env.development.local
18 | .env.test.local
19 | .env.production.local
20 |
21 | npm-debug.log*
22 | yarn-debug.log*
23 | yarn-error.log*
24 |
--------------------------------------------------------------------------------
/client/README.md:
--------------------------------------------------------------------------------
1 | # Getting Started with Create React App
2 |
3 | This project was bootstrapped with [Create React App](https://github.com/facebook/create-react-app).
4 |
5 | ## Available Scripts
6 |
7 | In the project directory, you can run:
8 |
9 | ### `npm start`
10 |
11 | Runs the app in the development mode.\
12 | Open [http://localhost:3000](http://localhost:3000) to view it in the browser.
13 |
14 | The page will reload if you make edits.\
15 | You will also see any lint errors in the console.
16 |
17 | ### `npm test`
18 |
19 | Launches the test runner in the interactive watch mode.\
20 | See the section about [running tests](https://facebook.github.io/create-react-app/docs/running-tests) for more information.
21 |
22 | ### `npm run build`
23 |
24 | Builds the app for production to the `build` folder.\
25 | It correctly bundles React in production mode and optimizes the build for the best performance.
26 |
27 | The build is minified and the filenames include the hashes.\
28 | Your app is ready to be deployed!
29 |
30 | See the section about [deployment](https://facebook.github.io/create-react-app/docs/deployment) for more information.
31 |
32 | ### `npm run eject`
33 |
34 | **Note: this is a one-way operation. Once you `eject`, you can’t go back!**
35 |
36 | If you aren’t satisfied with the build tool and configuration choices, you can `eject` at any time. This command will remove the single build dependency from your project.
37 |
38 | Instead, it will copy all the configuration files and the transitive dependencies (webpack, Babel, ESLint, etc) right into your project so you have full control over them. All of the commands except `eject` will still work, but they will point to the copied scripts so you can tweak them. At this point you’re on your own.
39 |
40 | You don’t have to ever use `eject`. The curated feature set is suitable for small and middle deployments, and you shouldn’t feel obligated to use this feature. However we understand that this tool wouldn’t be useful if you couldn’t customize it when you are ready for it.
41 |
42 | ## Learn More
43 |
44 | You can learn more in the [Create React App documentation](https://facebook.github.io/create-react-app/docs/getting-started).
45 |
46 | To learn React, check out the [React documentation](https://reactjs.org/).
47 |
48 | ### Code Splitting
49 |
50 | This section has moved here: [https://facebook.github.io/create-react-app/docs/code-splitting](https://facebook.github.io/create-react-app/docs/code-splitting)
51 |
52 | ### Analyzing the Bundle Size
53 |
54 | This section has moved here: [https://facebook.github.io/create-react-app/docs/analyzing-the-bundle-size](https://facebook.github.io/create-react-app/docs/analyzing-the-bundle-size)
55 |
56 | ### Making a Progressive Web App
57 |
58 | This section has moved here: [https://facebook.github.io/create-react-app/docs/making-a-progressive-web-app](https://facebook.github.io/create-react-app/docs/making-a-progressive-web-app)
59 |
60 | ### Advanced Configuration
61 |
62 | This section has moved here: [https://facebook.github.io/create-react-app/docs/advanced-configuration](https://facebook.github.io/create-react-app/docs/advanced-configuration)
63 |
64 | ### Deployment
65 |
66 | This section has moved here: [https://facebook.github.io/create-react-app/docs/deployment](https://facebook.github.io/create-react-app/docs/deployment)
67 |
68 | ### `npm run build` fails to minify
69 |
70 | This section has moved here: [https://facebook.github.io/create-react-app/docs/troubleshooting#npm-run-build-fails-to-minify](https://facebook.github.io/create-react-app/docs/troubleshooting#npm-run-build-fails-to-minify)
71 |
--------------------------------------------------------------------------------
/client/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "client",
3 | "version": "0.1.0",
4 | "private": true,
5 | "dependencies": {
6 | "@emotion/react": "^11.5.0",
7 | "@emotion/styled": "^11.3.0",
8 | "@mui/icons-material": "^5.0.5",
9 | "@mui/material": "^5.0.6",
10 | "@testing-library/jest-dom": "^5.14.1",
11 | "@testing-library/react": "^11.2.7",
12 | "@testing-library/user-event": "^12.8.3",
13 | "bootstrap": "^5.1.3",
14 | "react": "^17.0.2",
15 | "react-dom": "^17.0.2",
16 | "react-router-dom": "^5.3.0",
17 | "react-scripts": "4.0.3",
18 | "web-vitals": "^1.1.2"
19 | },
20 | "scripts": {
21 | "start": "react-scripts start",
22 | "build": "react-scripts build",
23 | "test": "react-scripts test",
24 | "eject": "react-scripts eject"
25 | },
26 | "eslintConfig": {
27 | "extends": [
28 | "react-app",
29 | "react-app/jest"
30 | ]
31 | },
32 | "browserslist": {
33 | "production": [
34 | ">0.2%",
35 | "not dead",
36 | "not op_mini all"
37 | ],
38 | "development": [
39 | "last 1 chrome version",
40 | "last 1 firefox version",
41 | "last 1 safari version"
42 | ]
43 | }
44 | }
45 |
--------------------------------------------------------------------------------
/client/public/favicon.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/harsh17112000/crud/d9e0b541726f7c9e8c47a89f7313b3b7eb2a3c42/client/public/favicon.ico
--------------------------------------------------------------------------------
/client/public/index.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
12 |
13 |
14 |
18 |
19 |
28 | React App
29 |
30 |
31 |
32 |
33 |
43 |
44 |
45 |
--------------------------------------------------------------------------------
/client/public/logo192.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/harsh17112000/crud/d9e0b541726f7c9e8c47a89f7313b3b7eb2a3c42/client/public/logo192.png
--------------------------------------------------------------------------------
/client/public/logo512.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/harsh17112000/crud/d9e0b541726f7c9e8c47a89f7313b3b7eb2a3c42/client/public/logo512.png
--------------------------------------------------------------------------------
/client/public/manifest.json:
--------------------------------------------------------------------------------
1 | {
2 | "short_name": "React App",
3 | "name": "Create React App Sample",
4 | "icons": [
5 | {
6 | "src": "favicon.ico",
7 | "sizes": "64x64 32x32 24x24 16x16",
8 | "type": "image/x-icon"
9 | },
10 | {
11 | "src": "logo192.png",
12 | "type": "image/png",
13 | "sizes": "192x192"
14 | },
15 | {
16 | "src": "logo512.png",
17 | "type": "image/png",
18 | "sizes": "512x512"
19 | }
20 | ],
21 | "start_url": ".",
22 | "display": "standalone",
23 | "theme_color": "#000000",
24 | "background_color": "#ffffff"
25 | }
26 |
--------------------------------------------------------------------------------
/client/public/profile.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/harsh17112000/crud/d9e0b541726f7c9e8c47a89f7313b3b7eb2a3c42/client/public/profile.png
--------------------------------------------------------------------------------
/client/public/robots.txt:
--------------------------------------------------------------------------------
1 | # https://www.robotstxt.org/robotstxt.html
2 | User-agent: *
3 | Disallow:
4 |
--------------------------------------------------------------------------------
/client/src/App.css:
--------------------------------------------------------------------------------
1 | .add_btn{
2 | text-align: right;
3 | }
4 |
5 | .container{
6 | overflow: auto;
7 | }
8 |
9 | .left_view h3{
10 | font-size: 21px;
11 | }
12 |
13 | .left_view p{
14 | font-weight: 600;
15 | }
16 |
17 | .left_view span{
18 | font-weight: 400;
19 | }
20 |
21 | .right_view p{
22 | font-weight: 600;
23 | }
24 |
25 |
26 | .right_view span{
27 | font-weight: 400;
28 | }
--------------------------------------------------------------------------------
/client/src/App.js:
--------------------------------------------------------------------------------
1 | import './App.css';
2 | import "../node_modules/bootstrap/dist/css/bootstrap.min.css"
3 | import "../node_modules/bootstrap/dist/js/bootstrap.bundle.min.js"
4 | import Navbaar from './components/Navbaar';
5 | import Home from './components/Home';
6 | import Register from './components/Register';
7 | import Edit from './components/Edit';
8 | import Details from './components/Details';
9 | import {Switch,Route} from "react-router-dom"
10 |
11 |
12 |
13 |
14 | function App() {
15 | return (
16 | <>
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 | >
26 | );
27 | }
28 |
29 | export default App;
30 |
31 |
32 |
33 |
34 |
35 |
36 |
--------------------------------------------------------------------------------
/client/src/App.test.js:
--------------------------------------------------------------------------------
1 | import { render, screen } from '@testing-library/react';
2 | import App from './App';
3 |
4 | test('renders learn react link', () => {
5 | render();
6 | const linkElement = screen.getByText(/learn react/i);
7 | expect(linkElement).toBeInTheDocument();
8 | });
9 |
--------------------------------------------------------------------------------
/client/src/components/Details.js:
--------------------------------------------------------------------------------
1 | import React, { useEffect, useState } from 'react'
2 | import CreateIcon from '@mui/icons-material/Create';
3 | import DeleteOutlineIcon from '@mui/icons-material/DeleteOutline';
4 | import Card from '@mui/material/Card';
5 | import CardContent from '@mui/material/CardContent';
6 | import MailOutlineIcon from '@mui/icons-material/MailOutline';
7 | import WorkIcon from '@mui/icons-material/Work';
8 | import PhoneAndroidIcon from '@mui/icons-material/PhoneAndroid';
9 | import LocationOnIcon from '@mui/icons-material/LocationOn';
10 | import { NavLink, useParams, useHistory } from 'react-router-dom';
11 |
12 |
13 | const Details = () => {
14 |
15 | const [getuserdata, setUserdata] = useState([]);
16 | console.log(getuserdata);
17 |
18 | const { id } = useParams("");
19 | console.log(id);
20 |
21 | const history = useHistory();
22 |
23 |
24 | const getdata = async () => {
25 |
26 | const res = await fetch(`https://crudappreactjs.herokuapp.com/getuser/${id}`, {
27 | method: "GET",
28 | headers: {
29 | "Content-Type": "application/json"
30 | }
31 | });
32 |
33 | const data = await res.json();
34 | console.log(data);
35 |
36 | if (res.status === 422 || !data) {
37 | console.log("error ");
38 |
39 | } else {
40 | setUserdata(data)
41 | console.log("get data");
42 | }
43 | }
44 |
45 | useEffect(() => {
46 | getdata();
47 | }, [])
48 |
49 | const deleteuser = async (id) => {
50 |
51 | const res2 = await fetch(`https://crudappreactjs.herokuapp.com/deleteuser/${id}`, {
52 | method: "DELETE",
53 | headers: {
54 | "Content-Type": "application/json"
55 | }
56 | });
57 |
58 | const deletedata = await res2.json();
59 | console.log(deletedata);
60 |
61 | if (res2.status === 422 || !deletedata) {
62 | console.log("error");
63 | } else {
64 | console.log("user deleted");
65 | history.push("/");
66 | }
67 |
68 | }
69 |
70 | return (
71 |
72 |
Welcome Harsh Pathak
73 |
74 |
75 |
76 |
77 |
78 |
79 |
80 |
81 |
82 |

83 |
Name: {getuserdata.name}
84 |
Age: {getuserdata.age}
85 |
Email: {getuserdata.email}
86 |
Occuption: {getuserdata.work}
87 |
88 |
89 |
90 |
mobile: +91 {getuserdata.mobile}
91 |
location: {getuserdata.add}
92 |
Description: {getuserdata.desc}
93 |
94 |
95 |
96 |
97 |
98 |
99 | )
100 | }
101 |
102 | export default Details
103 |
--------------------------------------------------------------------------------
/client/src/components/Edit.js:
--------------------------------------------------------------------------------
1 | import React, { useContext, useEffect, useState } from 'react'
2 | import { NavLink, useParams,useHistory } from 'react-router-dom'
3 | import { updatedata } from './context/ContextProvider'
4 |
5 |
6 | const Edit = () => {
7 |
8 | // const [getuserdata, setUserdata] = useState([]);
9 | // console.log(getuserdata);
10 |
11 | const {updata, setUPdata} = useContext(updatedata)
12 |
13 | const history = useHistory("");
14 |
15 | const [inpval, setINP] = useState({
16 | name: "",
17 | email: "",
18 | age: "",
19 | mobile: "",
20 | work: "",
21 | add: "",
22 | desc: ""
23 | })
24 |
25 | const setdata = (e) => {
26 | console.log(e.target.value);
27 | const { name, value } = e.target;
28 | setINP((preval) => {
29 | return {
30 | ...preval,
31 | [name]: value
32 | }
33 | })
34 | }
35 |
36 |
37 | const { id } = useParams("");
38 | console.log(id);
39 |
40 |
41 |
42 | const getdata = async () => {
43 |
44 | const res = await fetch(`https://crudappreactjs.herokuapp.com/getuser/${id}`, {
45 | method: "GET",
46 | headers: {
47 | "Content-Type": "application/json"
48 | }
49 | });
50 |
51 | const data = await res.json();
52 | console.log(data);
53 |
54 | if (res.status === 422 || !data) {
55 | console.log("error ");
56 |
57 | } else {
58 | setINP(data)
59 | console.log("get data");
60 |
61 | }
62 | }
63 |
64 | useEffect(() => {
65 | getdata();
66 | }, []);
67 |
68 |
69 | const updateuser = async(e)=>{
70 | e.preventDefault();
71 |
72 | const {name,email,work,add,mobile,desc,age} = inpval;
73 |
74 | const res2 = await fetch(`https://crudappreactjs.herokuapp.com/updateuser/${id}`,{
75 | method: "PATCH",
76 | headers: {
77 | "Content-Type": "application/json"
78 | },
79 | body:JSON.stringify({
80 | name,email,work,add,mobile,desc,age
81 | })
82 | });
83 |
84 | const data2 = await res2.json();
85 | console.log(data2);
86 |
87 | if(res2.status === 422 || !data2){
88 | alert("fill the data");
89 | }else{
90 | history.push("/")
91 | setUPdata(data2);
92 | }
93 |
94 | }
95 |
96 | return (
97 |
134 | )
135 | }
136 |
137 | export default Edit;
138 |
139 |
140 |
141 |
142 |
143 |
--------------------------------------------------------------------------------
/client/src/components/Home.js:
--------------------------------------------------------------------------------
1 | import React, { useState, useEffect, useContext } from 'react'
2 | import RemoveRedEyeIcon from '@mui/icons-material/RemoveRedEye';
3 | import CreateIcon from '@mui/icons-material/Create';
4 | import DeleteOutlineIcon from '@mui/icons-material/DeleteOutline';
5 | import { NavLink } from 'react-router-dom';
6 | import { adddata, deldata } from './context/ContextProvider';
7 | import { updatedata } from './context/ContextProvider'
8 |
9 |
10 |
11 |
12 | const Home = () => {
13 |
14 | const [getuserdata, setUserdata] = useState([]);
15 | console.log(getuserdata);
16 |
17 | const { udata, setUdata } = useContext(adddata);
18 |
19 | const {updata, setUPdata} = useContext(updatedata);
20 |
21 | const {dltdata, setDLTdata} = useContext(deldata);
22 |
23 | const getdata = async () => {
24 |
25 | const res = await fetch("https://crudappreactjs.herokuapp.com/getdata", {
26 | method: "GET",
27 | headers: {
28 | "Content-Type": "application/json"
29 | }
30 | });
31 |
32 | const data = await res.json();
33 | console.log(data);
34 |
35 | if (res.status === 422 || !data) {
36 | console.log("error ");
37 |
38 | } else {
39 | setUserdata(data)
40 | console.log("get data");
41 |
42 | }
43 | }
44 |
45 | useEffect(() => {
46 | getdata();
47 | }, [])
48 |
49 | const deleteuser = async (id) => {
50 |
51 | const res2 = await fetch(`https://crudappreactjs.herokuapp.com/deleteuser/${id}`, {
52 | method: "DELETE",
53 | headers: {
54 | "Content-Type": "application/json"
55 | }
56 | });
57 |
58 | const deletedata = await res2.json();
59 | console.log(deletedata);
60 |
61 | if (res2.status === 422 || !deletedata) {
62 | console.log("error");
63 | } else {
64 | console.log("user deleted");
65 | setDLTdata(deletedata)
66 | getdata();
67 | }
68 |
69 | }
70 |
71 |
72 | return (
73 |
74 | <>
75 | {
76 | udata ?
77 | <>
78 |
79 | {udata.name} added succesfully!
80 |
81 |
82 | > : ""
83 | }
84 | {
85 | updata ?
86 | <>
87 |
88 | {updata.name} updated succesfully!
89 |
90 |
91 | > : ""
92 | }
93 |
94 | {
95 | dltdata ?
96 | <>
97 |
98 | {dltdata.name} deleted succesfully!
99 |
100 |
101 | > : ""
102 | }
103 |
104 |
105 |
106 |
107 |
108 | Add data
109 |
110 |
111 |
112 |
113 |
114 | id |
115 | Username |
116 | email |
117 | Job |
118 | Number |
119 | |
120 |
121 |
122 |
123 |
124 | {
125 | getuserdata.map((element, id) => {
126 | return (
127 | <>
128 |
129 | {id + 1} |
130 | {element.name} |
131 | {element.email} |
132 | {element.work} |
133 | {element.mobile} |
134 |
135 |
136 |
137 |
138 | |
139 |
140 | >
141 | )
142 | })
143 | }
144 |
145 |
146 |
147 |
148 |
149 |
150 | >
151 | )
152 | }
153 |
154 | export default Home
155 |
156 |
157 |
158 |
159 |
160 |
161 |
162 |
163 |
164 |
165 |
166 |
167 |
168 |
169 |
170 |
171 |
172 |
--------------------------------------------------------------------------------
/client/src/components/Navbaar.js:
--------------------------------------------------------------------------------
1 | import React from 'react'
2 | import { NavLink } from 'react-router-dom'
3 |
4 |
5 | const Navbaar = () => {
6 | return (
7 |
8 |
28 |
29 | )
30 | }
31 |
32 | export default Navbaar
33 |
--------------------------------------------------------------------------------
/client/src/components/Register.js:
--------------------------------------------------------------------------------
1 | import React, { useContext, useState } from 'react'
2 | import { NavLink, useHistory } from 'react-router-dom'
3 | import { adddata } from './context/ContextProvider';
4 |
5 | const Register = () => {
6 |
7 | const { udata, setUdata } = useContext(adddata);
8 |
9 | const history = useHistory();
10 |
11 | const [inpval, setINP] = useState({
12 | name: "",
13 | email: "",
14 | age: "",
15 | mobile: "",
16 | work: "",
17 | add: "",
18 | desc: ""
19 | })
20 |
21 | const setdata = (e) => {
22 | console.log(e.target.value);
23 | const { name, value } = e.target;
24 | setINP((preval) => {
25 | return {
26 | ...preval,
27 | [name]: value
28 | }
29 | })
30 | }
31 |
32 |
33 | const addinpdata = async (e) => {
34 | e.preventDefault();
35 |
36 | const { name, email, work, add, mobile, desc, age } = inpval;
37 |
38 | const res = await fetch("https://crudappreactjs.herokuapp.com/register", {
39 | method: "POST",
40 | headers: {
41 | "Content-Type": "application/json"
42 | },
43 | body: JSON.stringify({
44 | name, email, work, add, mobile, desc, age
45 | })
46 | });
47 |
48 | const data = await res.json();
49 | console.log(data);
50 |
51 | if (res.status === 422 || !data) {
52 | console.log("error ");
53 | alert("error");
54 |
55 | } else {
56 | history.push("/")
57 | setUdata(data)
58 | console.log("data added");
59 |
60 | }
61 | }
62 |
63 | return (
64 |
65 |
home
66 |
100 |
101 | )
102 | }
103 | export default Register;
104 |
--------------------------------------------------------------------------------
/client/src/components/context/ContextProvider.js:
--------------------------------------------------------------------------------
1 | import React, { createContext, useState } from 'react'
2 |
3 |
4 | export const adddata = createContext("");
5 | export const updatedata = createContext("");
6 | export const deldata = createContext("");
7 |
8 | const ContextProvider = ({ children }) => {
9 |
10 | const [udata, setUdata] = useState("");
11 | const [updata, setUPdata] = useState("");
12 | const [dltdata, setDLTdata] = useState("");
13 |
14 |
15 | return (
16 |
17 |
18 |
19 | {children}
20 |
21 |
22 |
23 |
24 |
25 | )
26 | }
27 |
28 | export default ContextProvider;
29 |
30 |
31 |
32 |
33 |
34 |
35 |
36 |
37 |
38 |
39 |
40 |
41 |
--------------------------------------------------------------------------------
/client/src/index.css:
--------------------------------------------------------------------------------
1 | body {
2 | margin: 0;
3 | font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', 'Roboto', 'Oxygen',
4 | 'Ubuntu', 'Cantarell', 'Fira Sans', 'Droid Sans', 'Helvetica Neue',
5 | sans-serif;
6 | -webkit-font-smoothing: antialiased;
7 | -moz-osx-font-smoothing: grayscale;
8 | }
9 |
10 | code {
11 | font-family: source-code-pro, Menlo, Monaco, Consolas, 'Courier New',
12 | monospace;
13 | }
14 |
--------------------------------------------------------------------------------
/client/src/index.js:
--------------------------------------------------------------------------------
1 | import React, { StrictMode } from 'react';
2 | import ReactDOM from 'react-dom';
3 | import './index.css';
4 | import App from './App';
5 | import { BrowserRouter } from "react-router-dom"
6 | import ContextProvider from "./components/context/ContextProvider";
7 |
8 | ReactDOM.render(
9 |
10 |
11 |
12 |
13 |
14 | ,
15 | document.getElementById('root')
16 | );
17 |
18 |
--------------------------------------------------------------------------------
/client/src/logo.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/db/conn.js:
--------------------------------------------------------------------------------
1 | const mongoose = require("mongoose");
2 |
3 | const DB = process.env.DATABASE
4 |
5 |
6 | mongoose.connect(DB,{
7 | useNewUrlParser:true,
8 | useUnifiedTopology:true
9 | }).then(()=> console.log("connection start")).catch((error)=> console.log(error.message));
--------------------------------------------------------------------------------
/models/userSchema.js:
--------------------------------------------------------------------------------
1 | const mongoose = require("mongoose");
2 |
3 | const userSchema = new mongoose.Schema({
4 | name: {
5 | type: String,
6 | required: true
7 | },
8 | email: {
9 | type: String,
10 | required: true,
11 | unique: true
12 | },
13 | age: {
14 | type: String,
15 | required: true
16 | },
17 | mobile: {
18 | type: Number,
19 | required: true
20 | },
21 | work: {
22 | type: String,
23 | required: true
24 | },
25 | add: {
26 | type: String,
27 | required: true
28 | },
29 | desc: {
30 | type: String,
31 | required: true
32 | }
33 | });
34 |
35 | const users = new mongoose.model("users",userSchema);
36 |
37 |
38 | module.exports = users;
--------------------------------------------------------------------------------
/package-lock.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "server",
3 | "version": "1.0.0",
4 | "lockfileVersion": 1,
5 | "requires": true,
6 | "dependencies": {
7 | "@types/node": {
8 | "version": "16.11.6",
9 | "resolved": "https://registry.npmjs.org/@types/node/-/node-16.11.6.tgz",
10 | "integrity": "sha512-ua7PgUoeQFjmWPcoo9khiPum3Pd60k4/2ZGXt18sm2Slk0W0xZTqt5Y0Ny1NyBiN1EVQ/+FaF9NcY4Qe6rwk5w=="
11 | },
12 | "@types/webidl-conversions": {
13 | "version": "6.1.1",
14 | "resolved": "https://registry.npmjs.org/@types/webidl-conversions/-/webidl-conversions-6.1.1.tgz",
15 | "integrity": "sha512-XAahCdThVuCFDQLT7R7Pk/vqeObFNL3YqRyFZg+AqAP/W1/w3xHaIxuW7WszQqTbIBOPRcItYJIou3i/mppu3Q=="
16 | },
17 | "@types/whatwg-url": {
18 | "version": "8.2.1",
19 | "resolved": "https://registry.npmjs.org/@types/whatwg-url/-/whatwg-url-8.2.1.tgz",
20 | "integrity": "sha512-2YubE1sjj5ifxievI5Ge1sckb9k/Er66HyR2c+3+I6VDUUg1TLPdYYTEbQ+DjRkS4nTxMJhgWfSfMRD2sl2EYQ==",
21 | "requires": {
22 | "@types/node": "*",
23 | "@types/webidl-conversions": "*"
24 | }
25 | },
26 | "accepts": {
27 | "version": "1.3.7",
28 | "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.7.tgz",
29 | "integrity": "sha512-Il80Qs2WjYlJIBNzNkK6KYqlVMTbZLXgHx2oT0pU/fjRHyEp+PEfEPY0R3WCwAGVOtauxh1hOxNgIf5bv7dQpA==",
30 | "requires": {
31 | "mime-types": "~2.1.24",
32 | "negotiator": "0.6.2"
33 | }
34 | },
35 | "array-flatten": {
36 | "version": "1.1.1",
37 | "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz",
38 | "integrity": "sha1-ml9pkFGx5wczKPKgCJaLZOopVdI="
39 | },
40 | "base64-js": {
41 | "version": "1.5.1",
42 | "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz",
43 | "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA=="
44 | },
45 | "body-parser": {
46 | "version": "1.19.0",
47 | "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.19.0.tgz",
48 | "integrity": "sha512-dhEPs72UPbDnAQJ9ZKMNTP6ptJaionhP5cBb541nXPlW60Jepo9RV/a4fX4XWW9CuFNK22krhrj1+rgzifNCsw==",
49 | "requires": {
50 | "bytes": "3.1.0",
51 | "content-type": "~1.0.4",
52 | "debug": "2.6.9",
53 | "depd": "~1.1.2",
54 | "http-errors": "1.7.2",
55 | "iconv-lite": "0.4.24",
56 | "on-finished": "~2.3.0",
57 | "qs": "6.7.0",
58 | "raw-body": "2.4.0",
59 | "type-is": "~1.6.17"
60 | }
61 | },
62 | "bson": {
63 | "version": "4.5.3",
64 | "resolved": "https://registry.npmjs.org/bson/-/bson-4.5.3.tgz",
65 | "integrity": "sha512-qVX7LX79Mtj7B3NPLzCfBiCP6RAsjiV8N63DjlaVVpZW+PFoDTxQ4SeDbSpcqgE6mXksM5CAwZnXxxxn/XwC0g==",
66 | "requires": {
67 | "buffer": "^5.6.0"
68 | }
69 | },
70 | "buffer": {
71 | "version": "5.7.1",
72 | "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz",
73 | "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==",
74 | "requires": {
75 | "base64-js": "^1.3.1",
76 | "ieee754": "^1.1.13"
77 | }
78 | },
79 | "bytes": {
80 | "version": "3.1.0",
81 | "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.0.tgz",
82 | "integrity": "sha512-zauLjrfCG+xvoyaqLoV8bLVXXNGC4JqlxFCutSDWA6fJrTo2ZuvLYTqZ7aHBLZSMOopbzwv8f+wZcVzfVTI2Dg=="
83 | },
84 | "content-disposition": {
85 | "version": "0.5.3",
86 | "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.3.tgz",
87 | "integrity": "sha512-ExO0774ikEObIAEV9kDo50o+79VCUdEB6n6lzKgGwupcVeRlhrj3qGAfwq8G6uBJjkqLrhT0qEYFcWng8z1z0g==",
88 | "requires": {
89 | "safe-buffer": "5.1.2"
90 | }
91 | },
92 | "content-type": {
93 | "version": "1.0.4",
94 | "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.4.tgz",
95 | "integrity": "sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA=="
96 | },
97 | "cookie": {
98 | "version": "0.4.0",
99 | "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.4.0.tgz",
100 | "integrity": "sha512-+Hp8fLp57wnUSt0tY0tHEXh4voZRDnoIrZPqlo3DPiI4y9lwg/jqx+1Om94/W6ZaPDOUbnjOt/99w66zk+l1Xg=="
101 | },
102 | "cookie-signature": {
103 | "version": "1.0.6",
104 | "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz",
105 | "integrity": "sha1-4wOogrNCzD7oylE6eZmXNNqzriw="
106 | },
107 | "cors": {
108 | "version": "2.8.5",
109 | "resolved": "https://registry.npmjs.org/cors/-/cors-2.8.5.tgz",
110 | "integrity": "sha512-KIHbLJqu73RGr/hnbrO9uBeixNGuvSQjul/jdFvS/KFSIH1hWVd1ng7zOHx+YrEfInLG7q4n6GHQ9cDtxv/P6g==",
111 | "requires": {
112 | "object-assign": "^4",
113 | "vary": "^1"
114 | }
115 | },
116 | "debug": {
117 | "version": "2.6.9",
118 | "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
119 | "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
120 | "requires": {
121 | "ms": "2.0.0"
122 | }
123 | },
124 | "denque": {
125 | "version": "2.0.1",
126 | "resolved": "https://registry.npmjs.org/denque/-/denque-2.0.1.tgz",
127 | "integrity": "sha512-tfiWc6BQLXNLpNiR5iGd0Ocu3P3VpxfzFiqubLgMfhfOw9WyvgJBd46CClNn9k3qfbjvT//0cf7AlYRX/OslMQ=="
128 | },
129 | "depd": {
130 | "version": "1.1.2",
131 | "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz",
132 | "integrity": "sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak="
133 | },
134 | "destroy": {
135 | "version": "1.0.4",
136 | "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.0.4.tgz",
137 | "integrity": "sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA="
138 | },
139 | "dotenv": {
140 | "version": "10.0.0",
141 | "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-10.0.0.tgz",
142 | "integrity": "sha512-rlBi9d8jpv9Sf1klPjNfFAuWDjKLwTIJJ/VxtoTwIR6hnZxcEOQCZg2oIL3MWBYw5GpUDKOEnND7LXTbIpQ03Q=="
143 | },
144 | "ee-first": {
145 | "version": "1.1.1",
146 | "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz",
147 | "integrity": "sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0="
148 | },
149 | "encodeurl": {
150 | "version": "1.0.2",
151 | "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz",
152 | "integrity": "sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k="
153 | },
154 | "escape-html": {
155 | "version": "1.0.3",
156 | "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz",
157 | "integrity": "sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg="
158 | },
159 | "etag": {
160 | "version": "1.8.1",
161 | "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz",
162 | "integrity": "sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc="
163 | },
164 | "express": {
165 | "version": "4.17.1",
166 | "resolved": "https://registry.npmjs.org/express/-/express-4.17.1.tgz",
167 | "integrity": "sha512-mHJ9O79RqluphRrcw2X/GTh3k9tVv8YcoyY4Kkh4WDMUYKRZUq0h1o0w2rrrxBqM7VoeUVqgb27xlEMXTnYt4g==",
168 | "requires": {
169 | "accepts": "~1.3.7",
170 | "array-flatten": "1.1.1",
171 | "body-parser": "1.19.0",
172 | "content-disposition": "0.5.3",
173 | "content-type": "~1.0.4",
174 | "cookie": "0.4.0",
175 | "cookie-signature": "1.0.6",
176 | "debug": "2.6.9",
177 | "depd": "~1.1.2",
178 | "encodeurl": "~1.0.2",
179 | "escape-html": "~1.0.3",
180 | "etag": "~1.8.1",
181 | "finalhandler": "~1.1.2",
182 | "fresh": "0.5.2",
183 | "merge-descriptors": "1.0.1",
184 | "methods": "~1.1.2",
185 | "on-finished": "~2.3.0",
186 | "parseurl": "~1.3.3",
187 | "path-to-regexp": "0.1.7",
188 | "proxy-addr": "~2.0.5",
189 | "qs": "6.7.0",
190 | "range-parser": "~1.2.1",
191 | "safe-buffer": "5.1.2",
192 | "send": "0.17.1",
193 | "serve-static": "1.14.1",
194 | "setprototypeof": "1.1.1",
195 | "statuses": "~1.5.0",
196 | "type-is": "~1.6.18",
197 | "utils-merge": "1.0.1",
198 | "vary": "~1.1.2"
199 | }
200 | },
201 | "finalhandler": {
202 | "version": "1.1.2",
203 | "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.1.2.tgz",
204 | "integrity": "sha512-aAWcW57uxVNrQZqFXjITpW3sIUQmHGG3qSb9mUah9MgMC4NeWhNOlNjXEYq3HjRAvL6arUviZGGJsBg6z0zsWA==",
205 | "requires": {
206 | "debug": "2.6.9",
207 | "encodeurl": "~1.0.2",
208 | "escape-html": "~1.0.3",
209 | "on-finished": "~2.3.0",
210 | "parseurl": "~1.3.3",
211 | "statuses": "~1.5.0",
212 | "unpipe": "~1.0.0"
213 | }
214 | },
215 | "forwarded": {
216 | "version": "0.2.0",
217 | "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz",
218 | "integrity": "sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow=="
219 | },
220 | "fresh": {
221 | "version": "0.5.2",
222 | "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz",
223 | "integrity": "sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac="
224 | },
225 | "http-errors": {
226 | "version": "1.7.2",
227 | "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.7.2.tgz",
228 | "integrity": "sha512-uUQBt3H/cSIVfch6i1EuPNy/YsRSOUBXTVfZ+yR7Zjez3qjBz6i9+i4zjNaoqcoFVI4lQJ5plg63TvGfRSDCRg==",
229 | "requires": {
230 | "depd": "~1.1.2",
231 | "inherits": "2.0.3",
232 | "setprototypeof": "1.1.1",
233 | "statuses": ">= 1.5.0 < 2",
234 | "toidentifier": "1.0.0"
235 | }
236 | },
237 | "iconv-lite": {
238 | "version": "0.4.24",
239 | "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz",
240 | "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==",
241 | "requires": {
242 | "safer-buffer": ">= 2.1.2 < 3"
243 | }
244 | },
245 | "ieee754": {
246 | "version": "1.2.1",
247 | "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz",
248 | "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA=="
249 | },
250 | "inherits": {
251 | "version": "2.0.3",
252 | "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz",
253 | "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4="
254 | },
255 | "ipaddr.js": {
256 | "version": "1.9.1",
257 | "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz",
258 | "integrity": "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g=="
259 | },
260 | "kareem": {
261 | "version": "2.3.2",
262 | "resolved": "https://registry.npmjs.org/kareem/-/kareem-2.3.2.tgz",
263 | "integrity": "sha512-STHz9P7X2L4Kwn72fA4rGyqyXdmrMSdxqHx9IXon/FXluXieaFA6KJ2upcHAHxQPQ0LeM/OjLrhFxifHewOALQ=="
264 | },
265 | "media-typer": {
266 | "version": "0.3.0",
267 | "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz",
268 | "integrity": "sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g="
269 | },
270 | "memory-pager": {
271 | "version": "1.5.0",
272 | "resolved": "https://registry.npmjs.org/memory-pager/-/memory-pager-1.5.0.tgz",
273 | "integrity": "sha512-ZS4Bp4r/Zoeq6+NLJpP+0Zzm0pR8whtGPf1XExKLJBAczGMnSi3It14OiNCStjQjM6NU1okjQGSxgEZN8eBYKg==",
274 | "optional": true
275 | },
276 | "merge-descriptors": {
277 | "version": "1.0.1",
278 | "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz",
279 | "integrity": "sha1-sAqqVW3YtEVoFQ7J0blT8/kMu2E="
280 | },
281 | "methods": {
282 | "version": "1.1.2",
283 | "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz",
284 | "integrity": "sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4="
285 | },
286 | "mime": {
287 | "version": "1.6.0",
288 | "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz",
289 | "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg=="
290 | },
291 | "mime-db": {
292 | "version": "1.50.0",
293 | "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.50.0.tgz",
294 | "integrity": "sha512-9tMZCDlYHqeERXEHO9f/hKfNXhre5dK2eE/krIvUjZbS2KPcqGDfNShIWS1uW9XOTKQKqK6qbeOci18rbfW77A=="
295 | },
296 | "mime-types": {
297 | "version": "2.1.33",
298 | "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.33.tgz",
299 | "integrity": "sha512-plLElXp7pRDd0bNZHw+nMd52vRYjLwQjygaNg7ddJ2uJtTlmnTCjWuPKxVu6//AdaRuME84SvLW91sIkBqGT0g==",
300 | "requires": {
301 | "mime-db": "1.50.0"
302 | }
303 | },
304 | "mongodb": {
305 | "version": "4.1.3",
306 | "resolved": "https://registry.npmjs.org/mongodb/-/mongodb-4.1.3.tgz",
307 | "integrity": "sha512-lHvTqODBiSpuqjpCj48DOyYWS6Iq6ElJNUiH9HWdQtONyOfjgsKzJULipWduMGsSzaNO4nFi/kmlMFCLvjox/Q==",
308 | "requires": {
309 | "bson": "^4.5.2",
310 | "denque": "^2.0.1",
311 | "mongodb-connection-string-url": "^2.0.0",
312 | "saslprep": "^1.0.3"
313 | }
314 | },
315 | "mongodb-connection-string-url": {
316 | "version": "2.1.0",
317 | "resolved": "https://registry.npmjs.org/mongodb-connection-string-url/-/mongodb-connection-string-url-2.1.0.tgz",
318 | "integrity": "sha512-Qf9Zw7KGiRljWvMrrUFDdVqo46KIEiDuCzvEN97rh/PcKzk2bd6n9KuzEwBwW9xo5glwx69y1mI6s+jFUD/aIQ==",
319 | "requires": {
320 | "@types/whatwg-url": "^8.2.1",
321 | "whatwg-url": "^9.1.0"
322 | }
323 | },
324 | "mongoose": {
325 | "version": "6.0.12",
326 | "resolved": "https://registry.npmjs.org/mongoose/-/mongoose-6.0.12.tgz",
327 | "integrity": "sha512-BvsZk7zEEhb1AgQFLtxN9C+7qgy5edRuA3ZDDwHU+kHG/HM44vI6FdKV5m6HVdAUeCHHQTiVv+YQh8BRsToSHw==",
328 | "requires": {
329 | "bson": "^4.2.2",
330 | "kareem": "2.3.2",
331 | "mongodb": "4.1.3",
332 | "mpath": "0.8.4",
333 | "mquery": "4.0.0",
334 | "ms": "2.1.2",
335 | "regexp-clone": "1.0.0",
336 | "sift": "13.5.2",
337 | "sliced": "1.0.1"
338 | },
339 | "dependencies": {
340 | "ms": {
341 | "version": "2.1.2",
342 | "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
343 | "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w=="
344 | }
345 | }
346 | },
347 | "mpath": {
348 | "version": "0.8.4",
349 | "resolved": "https://registry.npmjs.org/mpath/-/mpath-0.8.4.tgz",
350 | "integrity": "sha512-DTxNZomBcTWlrMW76jy1wvV37X/cNNxPW1y2Jzd4DZkAaC5ZGsm8bfGfNOthcDuRJujXLqiuS6o3Tpy0JEoh7g=="
351 | },
352 | "mquery": {
353 | "version": "4.0.0",
354 | "resolved": "https://registry.npmjs.org/mquery/-/mquery-4.0.0.tgz",
355 | "integrity": "sha512-nGjm89lHja+T/b8cybAby6H0YgA4qYC/lx6UlwvHGqvTq8bDaNeCwl1sY8uRELrNbVWJzIihxVd+vphGGn1vBw==",
356 | "requires": {
357 | "debug": "4.x",
358 | "regexp-clone": "^1.0.0",
359 | "sliced": "1.0.1"
360 | },
361 | "dependencies": {
362 | "debug": {
363 | "version": "4.3.2",
364 | "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.2.tgz",
365 | "integrity": "sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw==",
366 | "requires": {
367 | "ms": "2.1.2"
368 | }
369 | },
370 | "ms": {
371 | "version": "2.1.2",
372 | "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
373 | "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w=="
374 | }
375 | }
376 | },
377 | "ms": {
378 | "version": "2.0.0",
379 | "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
380 | "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g="
381 | },
382 | "negotiator": {
383 | "version": "0.6.2",
384 | "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.2.tgz",
385 | "integrity": "sha512-hZXc7K2e+PgeI1eDBe/10Ard4ekbfrrqG8Ep+8Jmf4JID2bNg7NvCPOZN+kfF574pFQI7mum2AUqDidoKqcTOw=="
386 | },
387 | "object-assign": {
388 | "version": "4.1.1",
389 | "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz",
390 | "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM="
391 | },
392 | "on-finished": {
393 | "version": "2.3.0",
394 | "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz",
395 | "integrity": "sha1-IPEzZIGwg811M3mSoWlxqi2QaUc=",
396 | "requires": {
397 | "ee-first": "1.1.1"
398 | }
399 | },
400 | "parseurl": {
401 | "version": "1.3.3",
402 | "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz",
403 | "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ=="
404 | },
405 | "path-to-regexp": {
406 | "version": "0.1.7",
407 | "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz",
408 | "integrity": "sha1-32BBeABfUi8V60SQ5yR6G/qmf4w="
409 | },
410 | "proxy-addr": {
411 | "version": "2.0.7",
412 | "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.7.tgz",
413 | "integrity": "sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==",
414 | "requires": {
415 | "forwarded": "0.2.0",
416 | "ipaddr.js": "1.9.1"
417 | }
418 | },
419 | "punycode": {
420 | "version": "2.1.1",
421 | "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz",
422 | "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A=="
423 | },
424 | "qs": {
425 | "version": "6.7.0",
426 | "resolved": "https://registry.npmjs.org/qs/-/qs-6.7.0.tgz",
427 | "integrity": "sha512-VCdBRNFTX1fyE7Nb6FYoURo/SPe62QCaAyzJvUjwRaIsc+NePBEniHlvxFmmX56+HZphIGtV0XeCirBtpDrTyQ=="
428 | },
429 | "range-parser": {
430 | "version": "1.2.1",
431 | "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz",
432 | "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg=="
433 | },
434 | "raw-body": {
435 | "version": "2.4.0",
436 | "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.4.0.tgz",
437 | "integrity": "sha512-4Oz8DUIwdvoa5qMJelxipzi/iJIi40O5cGV1wNYp5hvZP8ZN0T+jiNkL0QepXs+EsQ9XJ8ipEDoiH70ySUJP3Q==",
438 | "requires": {
439 | "bytes": "3.1.0",
440 | "http-errors": "1.7.2",
441 | "iconv-lite": "0.4.24",
442 | "unpipe": "1.0.0"
443 | }
444 | },
445 | "regexp-clone": {
446 | "version": "1.0.0",
447 | "resolved": "https://registry.npmjs.org/regexp-clone/-/regexp-clone-1.0.0.tgz",
448 | "integrity": "sha512-TuAasHQNamyyJ2hb97IuBEif4qBHGjPHBS64sZwytpLEqtBQ1gPJTnOaQ6qmpET16cK14kkjbazl6+p0RRv0yw=="
449 | },
450 | "safe-buffer": {
451 | "version": "5.1.2",
452 | "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz",
453 | "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g=="
454 | },
455 | "safer-buffer": {
456 | "version": "2.1.2",
457 | "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz",
458 | "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg=="
459 | },
460 | "saslprep": {
461 | "version": "1.0.3",
462 | "resolved": "https://registry.npmjs.org/saslprep/-/saslprep-1.0.3.tgz",
463 | "integrity": "sha512-/MY/PEMbk2SuY5sScONwhUDsV2p77Znkb/q3nSVstq/yQzYJOH/Azh29p9oJLsl3LnQwSvZDKagDGBsBwSooag==",
464 | "optional": true,
465 | "requires": {
466 | "sparse-bitfield": "^3.0.3"
467 | }
468 | },
469 | "send": {
470 | "version": "0.17.1",
471 | "resolved": "https://registry.npmjs.org/send/-/send-0.17.1.tgz",
472 | "integrity": "sha512-BsVKsiGcQMFwT8UxypobUKyv7irCNRHk1T0G680vk88yf6LBByGcZJOTJCrTP2xVN6yI+XjPJcNuE3V4fT9sAg==",
473 | "requires": {
474 | "debug": "2.6.9",
475 | "depd": "~1.1.2",
476 | "destroy": "~1.0.4",
477 | "encodeurl": "~1.0.2",
478 | "escape-html": "~1.0.3",
479 | "etag": "~1.8.1",
480 | "fresh": "0.5.2",
481 | "http-errors": "~1.7.2",
482 | "mime": "1.6.0",
483 | "ms": "2.1.1",
484 | "on-finished": "~2.3.0",
485 | "range-parser": "~1.2.1",
486 | "statuses": "~1.5.0"
487 | },
488 | "dependencies": {
489 | "ms": {
490 | "version": "2.1.1",
491 | "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz",
492 | "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg=="
493 | }
494 | }
495 | },
496 | "serve-static": {
497 | "version": "1.14.1",
498 | "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.14.1.tgz",
499 | "integrity": "sha512-JMrvUwE54emCYWlTI+hGrGv5I8dEwmco/00EvkzIIsR7MqrHonbD9pO2MOfFnpFntl7ecpZs+3mW+XbQZu9QCg==",
500 | "requires": {
501 | "encodeurl": "~1.0.2",
502 | "escape-html": "~1.0.3",
503 | "parseurl": "~1.3.3",
504 | "send": "0.17.1"
505 | }
506 | },
507 | "setprototypeof": {
508 | "version": "1.1.1",
509 | "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.1.tgz",
510 | "integrity": "sha512-JvdAWfbXeIGaZ9cILp38HntZSFSo3mWg6xGcJJsd+d4aRMOqauag1C63dJfDw7OaMYwEbHMOxEZ1lqVRYP2OAw=="
511 | },
512 | "sift": {
513 | "version": "13.5.2",
514 | "resolved": "https://registry.npmjs.org/sift/-/sift-13.5.2.tgz",
515 | "integrity": "sha512-+gxdEOMA2J+AI+fVsCqeNn7Tgx3M9ZN9jdi95939l1IJ8cZsqS8sqpJyOkic2SJk+1+98Uwryt/gL6XDaV+UZA=="
516 | },
517 | "sliced": {
518 | "version": "1.0.1",
519 | "resolved": "https://registry.npmjs.org/sliced/-/sliced-1.0.1.tgz",
520 | "integrity": "sha1-CzpmK10Ewxd7GSa+qCsD+Dei70E="
521 | },
522 | "sparse-bitfield": {
523 | "version": "3.0.3",
524 | "resolved": "https://registry.npmjs.org/sparse-bitfield/-/sparse-bitfield-3.0.3.tgz",
525 | "integrity": "sha1-/0rm5oZWBWuks+eSqzM004JzyhE=",
526 | "optional": true,
527 | "requires": {
528 | "memory-pager": "^1.0.2"
529 | }
530 | },
531 | "statuses": {
532 | "version": "1.5.0",
533 | "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz",
534 | "integrity": "sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow="
535 | },
536 | "toidentifier": {
537 | "version": "1.0.0",
538 | "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.0.tgz",
539 | "integrity": "sha512-yaOH/Pk/VEhBWWTlhI+qXxDFXlejDGcQipMlyxda9nthulaxLZUNcUqFxokp0vcYnvteJln5FNQDRrxj3YcbVw=="
540 | },
541 | "tr46": {
542 | "version": "2.1.0",
543 | "resolved": "https://registry.npmjs.org/tr46/-/tr46-2.1.0.tgz",
544 | "integrity": "sha512-15Ih7phfcdP5YxqiB+iDtLoaTz4Nd35+IiAv0kQ5FNKHzXgdWqPoTIqEDDJmXceQt4JZk6lVPT8lnDlPpGDppw==",
545 | "requires": {
546 | "punycode": "^2.1.1"
547 | }
548 | },
549 | "type-is": {
550 | "version": "1.6.18",
551 | "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz",
552 | "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==",
553 | "requires": {
554 | "media-typer": "0.3.0",
555 | "mime-types": "~2.1.24"
556 | }
557 | },
558 | "unpipe": {
559 | "version": "1.0.0",
560 | "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz",
561 | "integrity": "sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw="
562 | },
563 | "utils-merge": {
564 | "version": "1.0.1",
565 | "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz",
566 | "integrity": "sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM="
567 | },
568 | "vary": {
569 | "version": "1.1.2",
570 | "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz",
571 | "integrity": "sha1-IpnwLG3tMNSllhsLn3RSShj2NPw="
572 | },
573 | "webidl-conversions": {
574 | "version": "6.1.0",
575 | "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-6.1.0.tgz",
576 | "integrity": "sha512-qBIvFLGiBpLjfwmYAaHPXsn+ho5xZnGvyGvsarywGNc8VyQJUMHJ8OBKGGrPER0okBeMDaan4mNBlgBROxuI8w=="
577 | },
578 | "whatwg-url": {
579 | "version": "9.1.0",
580 | "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-9.1.0.tgz",
581 | "integrity": "sha512-CQ0UcrPHyomtlOCot1TL77WyMIm/bCwrJ2D6AOKGwEczU9EpyoqAokfqrf/MioU9kHcMsmJZcg1egXix2KYEsA==",
582 | "requires": {
583 | "tr46": "^2.1.0",
584 | "webidl-conversions": "^6.1.0"
585 | }
586 | }
587 | }
588 | }
589 |
--------------------------------------------------------------------------------
/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "server",
3 | "version": "1.0.0",
4 | "description": "",
5 | "main": "app.js",
6 | "scripts": {
7 | "test": "echo \"Error: no test specified\" && exit 1",
8 | "start":"node app.js"
9 | },
10 | "keywords": [],
11 | "author": "",
12 | "license": "ISC",
13 | "dependencies": {
14 | "cors": "^2.8.5",
15 | "dotenv": "^10.0.0",
16 | "express": "^4.17.1",
17 | "mongoose": "^6.0.12"
18 | }
19 | }
20 |
--------------------------------------------------------------------------------
/routes/router.js:
--------------------------------------------------------------------------------
1 | const express = require("express");
2 | const router = express.Router();
3 | const users = require("../models/userSchema");
4 |
5 |
6 |
7 | // router.get("/",(req,res)=>{
8 | // console.log("connect");
9 | // });
10 |
11 | // register user
12 |
13 | router.post("/register",async(req,res)=>{
14 | // console.log(req.body);
15 | const {name,email,age,mobile,work,add,desc} = req.body;
16 |
17 | if(!name || !email || !age || !mobile || !work || !add || !desc){
18 | res.status(422).json("plz fill the data");
19 | }
20 |
21 | try {
22 |
23 | const preuser = await users.findOne({email:email});
24 | console.log(preuser);
25 |
26 | if(preuser){
27 | res.status(422).json("this is user is already present");
28 | }else{
29 | const adduser = new users({
30 | name,email,age,mobile,work,add,desc
31 | });
32 |
33 | await adduser.save();
34 | res.status(201).json(adduser);
35 | console.log(adduser);
36 | }
37 |
38 | } catch (error) {
39 | res.status(422).json(error);
40 | }
41 | })
42 |
43 |
44 | // get userdata
45 |
46 | router.get("/getdata",async(req,res)=>{
47 | try {
48 | const userdata = await users.find();
49 | res.status(201).json(userdata)
50 | console.log(userdata);
51 | } catch (error) {
52 | res.status(422).json(error);
53 | }
54 | })
55 |
56 | // get individual user
57 |
58 | router.get("/getuser/:id",async(req,res)=>{
59 | try {
60 | console.log(req.params);
61 | const {id} = req.params;
62 |
63 | const userindividual = await users.findById({_id:id});
64 | console.log(userindividual);
65 | res.status(201).json(userindividual)
66 |
67 | } catch (error) {
68 | res.status(422).json(error);
69 | }
70 | })
71 |
72 |
73 | // update user data
74 |
75 | router.patch("/updateuser/:id",async(req,res)=>{
76 | try {
77 | const {id} = req.params;
78 |
79 | const updateduser = await users.findByIdAndUpdate(id,req.body,{
80 | new:true
81 | });
82 |
83 | console.log(updateduser);
84 | res.status(201).json(updateduser);
85 |
86 | } catch (error) {
87 | res.status(422).json(error);
88 | }
89 | })
90 |
91 |
92 | // delete user
93 | router.delete("/deleteuser/:id",async(req,res)=>{
94 | try {
95 | const {id} = req.params;
96 |
97 | const deletuser = await users.findByIdAndDelete({_id:id})
98 | console.log(deletuser);
99 | res.status(201).json(deletuser);
100 |
101 | } catch (error) {
102 | res.status(422).json(error);
103 | }
104 | })
105 |
106 |
107 |
108 |
109 | module.exports = router;
110 |
111 |
112 |
113 |
114 |
115 |
116 |
117 |
118 |
119 |
120 |
--------------------------------------------------------------------------------