"use server";import{NextRequest,NextResponse} from "next/server";import{ connectDB } from "@/app/libs/connectDB";import{ isAuthenticate } from "@/app/libs/isAuthenticate";importImage from "@/app/models/Image";import{ v2 as cloudinary } from "cloudinary";import{Readable} from "stream";
cloudinary.config({
cloud_name: process.env.CLOUDINARY_CLOUD_NAME,
api_key: process.env.CLOUDINARY_API_KEY,
api_secret: process.env.CLOUDINARY_API_SECRET,});function bufferToStream(buffer:Buffer){const readable =newReadable();
readable._read =()=>{};
readable.push(buffer);
readable.push(null);return readable;}exportasyncfunction POST(request:NextRequest){try{await connectDB();const user =await isAuthenticate(request);if(!user){returnNextResponse.json({ message:"غير مصرح"},{ status:401});}const formData =await request.formData();const title = formData.get("title") as string;const description = formData.get("description") as string;const file = formData.get("file") as File;if(!file){returnNextResponse.json({ message:"اختر صورة أولاً"},{ status:400});}const fileBuffer =Buffer.from(await file.arrayBuffer());const uploadResult =awaitnewPromise<any>((resolve, reject)=>{const stream = cloudinary.uploader.upload_stream({ folder:"images"},(error, result)=>{if(error) reject(error);else resolve(result);});
bufferToStream(fileBuffer).pipe(stream);});// إنشاء مستند جديد في MongoDBconst newImage =awaitImage.create({
title,
description,
imageUrl: uploadResult.secure_url,
userId: user._id,
likes:0,
likedBy:[],});returnNextResponse.json({
success:"تم رفع الصورة بنجاح",
image: newImage,});}catch(err){
console.log(err);returnNextResponse.json({ message:"حدث خطأ في السيرفر"},{ status:500});}}
import{ connectDB } from "@/app/libs/connectDB";importImage from "@/app/models/Image";import{NextRequest,NextResponse} from "next/server";exportasyncfunction GET(request:NextRequest){try{await connectDB();const images =awaitImage.find().sort({createdAt:-1});returnNextResponse.json(images);}catch(err){
console.log(err);returnNextResponse.json({ message:"حدث خطأ في السيرفر"},{ status:500});}}
السؤال
Zen Eddin Allaham
الان بدأ يرفع صور بنجاح لكن لا يتم عرض صور في واجهة رئيسية بعد ما استخدمنت Cloudinary
برغم انها تحفظ في قاعدة بيانات
https://image-gallery-llmy3g4pa-zen-allahams-projects.vercel.app/
1 جواب على هذا السؤال
Recommended Posts
انضم إلى النقاش
يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.