first commit
This commit is contained in:
commit
55d9a9d472
2
.gitignore
vendored
Normal file
2
.gitignore
vendored
Normal file
|
@ -0,0 +1,2 @@
|
|||
node_modules
|
||||
.env
|
31
app.js
Normal file
31
app.js
Normal file
|
@ -0,0 +1,31 @@
|
|||
require("dotenv").config();
|
||||
const express = require("express");
|
||||
const connectDB= require("./config/db");
|
||||
const userRoutes= require("./routes/userRoutes");
|
||||
const app= express();
|
||||
const PORT = process.env.PORT || 5000;
|
||||
//DB connection:Done
|
||||
connectDB();
|
||||
|
||||
//Routes
|
||||
app.use("/api/users",userRoutes);
|
||||
app.listen(PORT,()=>{
|
||||
console.log(`Server is running on port ${PORT}`);
|
||||
})
|
||||
|
||||
|
||||
// const logger = require("./middleware/logger");
|
||||
// const userRoutes = require("./routes/userRoutes");
|
||||
|
||||
// const app = express();
|
||||
// const PORT = process.env.PORT || 5000;
|
||||
|
||||
// connectDB();
|
||||
|
||||
// app.use(express.json());
|
||||
// app.use(logger); // custom middleware
|
||||
// app.use("/api/users", userRoutes);
|
||||
|
||||
// app.listen(PORT, () => {
|
||||
// console.log(`Server is running on port ${PORT}`);
|
||||
// });
|
12
config/db.js
Normal file
12
config/db.js
Normal file
|
@ -0,0 +1,12 @@
|
|||
const mongoose = require("mongoose");
|
||||
const connectDB = async()=>{
|
||||
try{
|
||||
await mongoose.connect(process.env.MONGO_URI);
|
||||
console.log("MongoDB connected!");
|
||||
}catch(err){
|
||||
console.error("DB connection failed:",err.message);
|
||||
process.exit(1);
|
||||
}
|
||||
}
|
||||
|
||||
module.exports = connectDB;
|
66
controllers/userController.js
Normal file
66
controllers/userController.js
Normal file
|
@ -0,0 +1,66 @@
|
|||
const User = require("../models/User");
|
||||
|
||||
//POST
|
||||
const createUser = async (req, res) => {
|
||||
try {
|
||||
const user = await User.create(req.body);
|
||||
res.status(201).json(user);
|
||||
} catch (err) {
|
||||
res.status(400).json({ error: err.message });
|
||||
}
|
||||
};
|
||||
|
||||
//GET
|
||||
const getUsers = async (req, res) => {
|
||||
try {
|
||||
const users = await User.find();
|
||||
res.status(200).json(users);
|
||||
} catch (err) {
|
||||
res.status(400).json({ error: err.message });
|
||||
}
|
||||
};
|
||||
|
||||
//GET by id
|
||||
const getUserById = async (req,res)=>{
|
||||
try {
|
||||
const user = await User.findById(req.params.id);
|
||||
if(!user){
|
||||
return res.status(404).json({error: "User not found"})
|
||||
}
|
||||
res.status(200).json(user);
|
||||
} catch (err) {
|
||||
res.status(400).json({ error: err.message });
|
||||
}
|
||||
};
|
||||
//UPDATE
|
||||
const updateUser = async(req,res)=>{
|
||||
try {
|
||||
const user = await User.findByIdAndUpdate(req.params.id,req.body,{
|
||||
new:true,
|
||||
});
|
||||
res.status(200).json(user);
|
||||
} catch (err) {
|
||||
res.status(400).json({ error: err.message });
|
||||
}
|
||||
};
|
||||
//DELETE
|
||||
const deleteUser= async(req,res)=>{
|
||||
try {
|
||||
const user = await User.findByIdAndDelete(req.params.id);
|
||||
if(!user){
|
||||
return res.status(404).json({message: "User not found"});
|
||||
}
|
||||
} catch (error) {
|
||||
res.status(400).json({ error: err.message });
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
module.exports = {
|
||||
createUser,
|
||||
getUsers,
|
||||
getUserById,
|
||||
updateUser,
|
||||
deleteUser
|
||||
};
|
||||
|
19
models/User.js
Normal file
19
models/User.js
Normal file
|
@ -0,0 +1,19 @@
|
|||
const mongoose = require("mongoose");
|
||||
const userSchema = new mongoose.Schema({
|
||||
first_name:{
|
||||
type:String,
|
||||
required:true
|
||||
},
|
||||
last_name:{
|
||||
type:String,
|
||||
},
|
||||
email:{
|
||||
type:String,
|
||||
required:true,
|
||||
unique:true
|
||||
},
|
||||
age:{
|
||||
type:Number
|
||||
}
|
||||
})
|
||||
module.exports = mongoose.model("User",userSchema);
|
1357
package-lock.json
generated
Normal file
1357
package-lock.json
generated
Normal file
File diff suppressed because it is too large
Load diff
20
package.json
Normal file
20
package.json
Normal file
|
@ -0,0 +1,20 @@
|
|||
{
|
||||
"name": "mini-crud",
|
||||
"version": "1.0.0",
|
||||
"main": "app.js",
|
||||
"scripts": {
|
||||
"start":"nodemon app.js",
|
||||
"test": "echo \"Error: no test specified\" && exit 1"
|
||||
},
|
||||
"keywords": [],
|
||||
"author": "",
|
||||
"license": "ISC",
|
||||
"description": "",
|
||||
"dependencies": {
|
||||
"dotenv": "^16.5.0",
|
||||
"express": "^5.1.0",
|
||||
"mongodb": "^6.16.0",
|
||||
"mongoose": "^8.15.1",
|
||||
"nodemon": "^3.1.10"
|
||||
}
|
||||
}
|
9
routes/userRoutes.js
Normal file
9
routes/userRoutes.js
Normal file
|
@ -0,0 +1,9 @@
|
|||
const express = require("express");
|
||||
const { createUser, getUsers, getUserById, updateUser, deleteUser } = require("../controllers/userController");
|
||||
const router =express.Router();
|
||||
|
||||
router.post("/", createUser);
|
||||
router.get('/',getUsers);
|
||||
router.get('/:id',getUserById);
|
||||
router.put('/:id',updateUser);
|
||||
router.delete(':/id',deleteUser)
|
Loading…
Reference in a new issue