BlogImage

This commit is contained in:
yashrajverma 2021-05-27 20:16:20 +05:30
parent df0d19b106
commit f8335cbfe9
4 changed files with 86 additions and 6399 deletions

View File

@ -1,37 +1,12 @@
const { log } = require("handlebars"); const { log } = require("handlebars");
const Blog = require("../models/Blog"); const Blog = require("../models/Blog");
const User = require("../models/User"); const User = require("../models/User");
const mongoose = require("mongoose");
const GridFsStorage = require("multer-gridfs-storage");
const Grid = require("gridfs-stream");
const multer = require("multer");
const MONGO_URI = `mongodb+srv://Cantilever:Cantilever@cluster0.dqxva.mongodb.net/myFirstDatabase?retryWrites=true&w=majority`;
const connect = mongoose.createConnection(MONGO_URI, {
useNewUrlParser: true,
useUnifiedTopology: true,
});
let gfs;
connect.once("open", () => {
// initialize stream
gfs = Grid(connect.db, mongoose.mongo);
gfs.collection("blogImages");
});
module.exports.getAllBlogs = async (req, res, next) => { module.exports.getAllBlogs = async (req, res, next) => {
try { try {
let blog = await Blog.find(); let blog = await Blog.find();
if (blog) { if (blog) {
gfs.files.find().toArray((err, files) => { res.json({ blogs: blog });
//check if files exist
if (!files || files.length == 0) {
return res.status(404).json({
err: "No files exist",
});
}
// files exist
res.json({ files, blogs: blog });
});
} else { } else {
console.log("Error in Blog", blog); console.log("Error in Blog", blog);
return; return;
@ -76,7 +51,7 @@ module.exports.addBlog = async (req, res, next) => {
let blog = new Blog({ let blog = new Blog({
title, title,
body, body,
image: req.file, image: req.file.location,
date: new Date().toISOString(), date: new Date().toISOString(),
author, author,
}); });

6415
package-lock.json generated

File diff suppressed because it is too large Load Diff

View File

@ -28,6 +28,7 @@
"mongoose": "^5.12.2", "mongoose": "^5.12.2",
"multer": "^1.4.2", "multer": "^1.4.2",
"multer-gridfs-storage": "^4.2.0", "multer-gridfs-storage": "^4.2.0",
"multer-s3": "^2.9.0",
"nodemailer": "^6.6.0", "nodemailer": "^6.6.0",
"nodemailer-smtp-transport": "^2.7.4", "nodemailer-smtp-transport": "^2.7.4",
"passport": "^0.4.1", "passport": "^0.4.1",

View File

@ -2,26 +2,34 @@ const express = require("express");
const router = express.Router(); const router = express.Router();
const BlogController = require("../controllers/blog"); const BlogController = require("../controllers/blog");
const isAuth = require("../middleware/requirelogin"); const isAuth = require("../middleware/requirelogin");
const GridFsStorage = require("multer-gridfs-storage");
const Grid = require("gridfs-stream");
const multer = require("multer"); const multer = require("multer");
const MONGO_URI = `mongodb+srv://Cantilever:Cantilever@cluster0.dqxva.mongodb.net/myFirstDatabase?retryWrites=true&w=majority`; const multerS3 = require("multer-s3");
const aws = require("aws-sdk");
let storage = new GridFsStorage({ aws.config.update({
url: MONGO_URI, secretAccessKey: `${process.env.AWS_SEC}`,
file: (req, file) => { accessKeyId: `${process.env.AWS_KEY}`,
return new Promise((resolve, reject) => { region: "ap-south-1",
const fileInfo = {
filename: file.originalname,
bucketName: "blogImages",
};
resolve(fileInfo);
}); });
const s3 = new aws.S3();
const upload = multer({
storage: multerS3({
s3: s3,
acl: "public-read",
bucket: "cantilever-blog-images",
metadata: function (req, file, cb) {
cb(null, { fieldName: file.originalname });
}, },
key: function (req, file, cb) {
cb(null, file.originalname);
},
}),
}); });
const upload = multer({ storage }); router.post("/addBlog", upload.single("blog_image"), BlogController.addBlog);
router.post("/addBlog", upload.single("file"), BlogController.addBlog);
router.get("/getAllBlogs", BlogController.getAllBlogs); router.get("/getAllBlogs", BlogController.getAllBlogs);