मेरी पोस्ट विधि एक एपीआई का एक हिस्सा है जिसका उपयोग मैं फ़ाइलों को अपलोड करने और उन्हें स्थानीय निर्देशिका में एक फ़ोल्डर में संग्रहीत करने के लिए कर रहा हूं। जब उपयोगकर्ता फ़ाइल अपलोड करता है तो यह स्थानीय निर्देशिका में संग्रहीत हो जाता है और छवि का पथ कंसोल में लॉग होता है। मैं उस पथ को प्रस्तुत करने का प्रयास कर रहा हूं जो ईजेएस टेम्पलेट में POST विधि में लॉग इन है जिसे मैं प्राप्त मार्ग में प्रस्तुत कर रहा हूं। मैं व्यक्त करने के लिए नया हूँ और नोड क्या ऐसा कोई तरीका है जिससे मैं यह कर सकता हूँ? यहाँ मेरा कोड है:

const storage = multer.diskStorage({
    destination: './upload/images',
    filename: (req, file, cb) => {
        return cb(null, `${file.fieldname}_${Date.now()}${path.extname(file.originalname)}`)
    }
})

const upload = multer({
    storage: storage,
   limits:{
       fileSize: 10485760
   }
})

app.post("/upload", upload.single('profile'), (req, res) => {
    res.redirect("/main")
    let imgPath = req.file.path;
    console.log(imgPath);
})

function errHandler(err, req, res, next) {
    if (err instanceof multer.MulterError) {
        res.json({
            success: 0,
            message: err.message
        })
    }
}
app.use(errHandler);

यह लॉग करता है "अपलोड\छवियां\प्रोफाइल_1609158104360.jpg"

माई गेट फंक्शन जिसमें मैं /अपलोड पोस्ट रूट से लॉग किए गए पथ तक पहुंचने का प्रयास कर रहा हूं

app.get("/main", function  (req, res) {
    if (req.isAuthenticated()) {
        // res.render("main");
        User.find({ "secret": {$ne: null}}, function(err, foundUser, imgPath){
            if(err){
                console.log(err);
            }else{
                if(foundUser){
                    res.render("main", {
                        usersWithSecrets: foundUser,
                        usersWithImage: imgPath
                    });
                    console.log(imgPath);
                }
            }
        }
        );
    } else {
        res.redirect("/login");
    }

});
0
Mayank saini 28 पद 2020, 16:36

1 उत्तर

सबसे बढ़िया उत्तर

आप नहीं कर सकते। पोस्ट/अपलोड पर आप रीडायरेक्ट लौटाते हैं। ब्राउज़र से प्राप्त/मुख्य बनाता है, जो पूरी तरह से अलग अनुरोध है।

1
Tymur Valiiev 28 पद 2020, 16:40
क्या कोई तरीका है कि मैं इसे कर सकता हूं मैंने पहले res.json की कोशिश की है जो भी काम नहीं किया।
 – 
Mayank saini
28 पद 2020, 16:45
इसका अन्य अनुरोध, जिसका पिछले से कोई संबंध नहीं है जब तक कि आप इसे किसी तरह नहीं बनाते। आपके कोड को देखकर मैं अंदाजा लगा सकता हूं कि आप प्रोफाइल पिक्चर सेव कर रहे हैं। चित्र सहेजते समय, आप प्रोफ़ाइल चित्र पथ को DB में सहेज सकते हैं, जो आपकी सभी समस्याओं का समाधान करेगा।
 – 
Tymur Valiiev
28 पद 2020, 16:48
बहुत बहुत धन्यवाद मेरे दोस्त मैं अभी कोशिश करूँगा और देख सकता हूँ कि क्या यह काम करता है :) मदद के लिए बहुत बहुत धन्यवाद
 – 
Mayank saini
28 पद 2020, 16:52