diff --git a/.env b/.env new file mode 100644 index 00000000..4522065b --- /dev/null +++ b/.env @@ -0,0 +1 @@ +MONGO_URI = mongodb://127.0.0.1:27017/BlogApp \ No newline at end of file diff --git a/client/src/componets/Blogs.js b/client/src/componets/Blogs.js index 959d98cb..f87d9f43 100644 --- a/client/src/componets/Blogs.js +++ b/client/src/componets/Blogs.js @@ -5,15 +5,17 @@ import config from "../config"; const Blogs = () => { const [blogs, setBlogs] = useState(); + console.log("hi") const sendRequest = async () => { const res = await axios .get(`${config.BASE_URL}/api/blogs`) .catch((err) => console.log(err)); const data = await res.data; + console.log(data.data.blogs) return data; }; useEffect(() => { - sendRequest().then((data) => setBlogs(data.blogs)); + sendRequest().then((data) => setBlogs(data.data.blogs)); }, []); console.log(blogs); return ( diff --git a/client/src/componets/Login.js b/client/src/componets/Login.js index 8f06606b..d8865fc5 100644 --- a/client/src/componets/Login.js +++ b/client/src/componets/Login.js @@ -37,10 +37,10 @@ const Login = () => { password: inputs.password, }) .catch((err) => console.log(err)); - + console.log(res) const data = await res.data; - console.log("return"); - console.log(data); + console.log(data.user._id) + console.log(data.data); return data; }; diff --git a/server/config/db.js b/server/config/db.js index 28343a4a..4ff6c9d1 100644 --- a/server/config/db.js +++ b/server/config/db.js @@ -5,8 +5,9 @@ require('dotenv').config(); mongoose.set('strictQuery', false); -mongoose.connect(process.env.MONGO_URI || "mongodb://mongo:27017/Blog").then(()=>{ - console.log("connected!"); +mongoose.connect(process.env.MONGO_URI || "mongodb://localhost:27017/Blog").then(()=>{ + console.log("Database connected!"); }).catch((err)=>{ - console.log(err); + console.log("Database not connected", err); + }) \ No newline at end of file diff --git a/server/controller/blog-controller.js b/server/controller/blog-controller.js index 1cf77188..06858fb8 100644 --- a/server/controller/blog-controller.js +++ b/server/controller/blog-controller.js @@ -1,12 +1,14 @@ const mongoose = require("mongoose"); const Blog = require("../model/Blog"); const User = require("../model/User"); -const { ApiResponse } = require("../utils/ApiResponse"); -const { ApiError } = require("../utils/ApiError"); +const ApiResponse = require("../utils/ApiResponse"); +const ApiError = require("../utils/ApiError"); const getAllBlogs = async (req, res, next) => { try { + console.log("Hello") const blogs = await Blog.find(); + console.log("Blogs", blogs); if (!blogs || blogs.length === 0) { return res.status(404).json(new ApiError(404, "No blogs found")); } @@ -17,7 +19,9 @@ const getAllBlogs = async (req, res, next) => { }; const addBlog = async (req, res, next) => { + console.log("Inside add blog"); const { title, desc, img, user } = req.body; + console.log(req.body) const currentDate = new Date(); try { @@ -26,17 +30,15 @@ const addBlog = async (req, res, next) => { return res.status(400).json(new ApiError(400, "Unauthorized")); } - const blog = new Blog({ title, desc, img, user, date: currentDate }); + const blog = await Blog.create({ title, desc, img, user, date: currentDate }); + + existingUser.blogs.push(blog._id); + await existingUser.save(); - const session = await mongoose.startSession(); - session.startTransaction(); - await blog.save({ session }); - existingUser.blogs.push(blog); - await existingUser.save({ session }); - await session.commitTransaction(); return res.status(201).json(new ApiResponse(201, { blog }, "Blog created successfully")); } catch (e) { + console.log("error", e) return res.status(500).json(new ApiError(500, e.message)); } }; diff --git a/server/controller/user-contoller.js b/server/controller/user-contoller.js index c6387a7d..3312435b 100644 --- a/server/controller/user-contoller.js +++ b/server/controller/user-contoller.js @@ -1,7 +1,7 @@ const User = require("../model/User"); const bcrypt = require("bcryptjs"); -const { ApiResponse } = require("../utils/ApiResponse"); -const { ApiError } = require("../utils/ApiError"); +const ApiResponse = require("../utils/ApiResponse"); +const ApiError = require("../utils/ApiError"); const getAllUser = async (req, res, next) => { try { @@ -21,6 +21,7 @@ const signUp = async (req, res, next) => { try { const existingUser = await User.findOne({ email }); + console.log(existingUser) if (existingUser) { return res.status(400).json(new ApiError(400, "User already exists")); } @@ -32,8 +33,10 @@ const signUp = async (req, res, next) => { password: hashedPassword, blogs: [] }); + console.log(user) await user.save(); + console.log("User saved") return res.status(201).json(new ApiResponse(201, { user }, "User registered successfully")); } catch (e) { console.error(e); @@ -43,9 +46,10 @@ const signUp = async (req, res, next) => { const logIn = async (req, res, next) => { const { email, password } = req.body; - + console.log(email) try { const existingUser = await User.findOne({ email }); + console.log("Exisiting") if (!existingUser) { return res.status(404).json(new ApiError(404, "User not found")); } diff --git a/server/package.json b/server/package.json index 0bc1d46f..5a64a49b 100644 --- a/server/package.json +++ b/server/package.json @@ -1,83 +1,143 @@ { - - + + + + "name": "blogapp", - - + + + + "version": "1.0.0", - - + + + + "description": "", - - + + + + "main": "server.js", - - + + + + "scripts": { - - - - + + + + + + + + "start": "nodemon server.js", - - - - + + + + + + + + "test": "echo \"Error: no test specified\" && exit 1" - - + + + + }, - - + + + + "author": "khushi patel", - - + + + + "license": "ISC", - - + + + + "devDependencies": { - - - - + + + + + + + + "nodemon": "^2.0.16" - - + + + + }, - - + + + + "dependencies": { - - - - + + + + + + + + "bcryptjs": "^2.4.3", - - - - + + + + + + + + "cors": "^2.8.5", - - - - + + + + + + + + "dotenv": "^16.5.0", - - - - + + + + + + + + "express": "^4.18.1", - - - - + + + + + + + + "helmet": "^8.1.0", - - - - + + + + + + + + "mongoose": "^6.3.4" - - + + + + } } diff --git a/server/utils/ApiError.js b/server/utils/ApiError.js index 7fa485ff..210fc6c4 100644 --- a/server/utils/ApiError.js +++ b/server/utils/ApiError.js @@ -21,4 +21,4 @@ class ApiError extends Error { } } -export {ApiError} \ No newline at end of file +module.exports = ApiError; \ No newline at end of file diff --git a/server/utils/ApiResponse.js b/server/utils/ApiResponse.js index cb2a284a..4cdad690 100644 --- a/server/utils/ApiResponse.js +++ b/server/utils/ApiResponse.js @@ -7,4 +7,4 @@ class ApiResponse { } } -export { ApiResponse } \ No newline at end of file +module.exports = ApiResponse; \ No newline at end of file diff --git a/server/yarn.lock b/server/yarn.lock index 6a549298..978708cc 100644 --- a/server/yarn.lock +++ b/server/yarn.lock @@ -1213,6 +1213,11 @@ fresh@0.5.2: resolved "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz" integrity sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q== +fsevents@~2.3.2: + version "2.3.3" + resolved "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz" + integrity sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw== + function-bind@^1.1.2: version "1.1.2" resolved "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz" @@ -1272,6 +1277,11 @@ hasown@^2.0.0: dependencies: function-bind "^1.1.2" +helmet@^8.1.0: + version "8.1.0" + resolved "https://registry.npmjs.org/helmet/-/helmet-8.1.0.tgz" + integrity sha512-jOiHyAZsmnr8LqoPGmCjYAaiuWwjAPLgY8ZX2XrmHawt99/u1y6RgrZMTeoPfpUbV96HOalYgz1qzkRbw54Pmg== + http-errors@2.0.0: version "2.0.0" resolved "https://registry.npmjs.org/http-errors/-/http-errors-2.0.0.tgz"