मेरे पास यह कोड है:

router.post('/expenseReport', ensureAuthenticated, async (req, res) => {
    try {
        const{ startDate, endDate } = req.body;
        var expenseArray = [];
        var count = 0;
        var html = "<link rel='stylesheet' href='/css/freelancer.css' type='text/css'/>" +
                    "<script src='https://code.jquery.com/jquery-3.4.1.slim.min.js' integrity='sha384-J6qa4849blE2+poT4WnyKhv5vZF5SrPo0iEjwBvKU7imGFAV0wwj1yYfoRSJoZ+n' crossorigin='anonymous'></script>" +
                    "<nav class='navbar navbar-expand-lg bg-secondary text-uppercase fixed-top' id='mainNav'><div class='container'>" +
                    "<a class='navbar-brand js-scroll-trigger' href='/dashboard'>The Traveling Coder</a>" +
                    "<button class='navbar-toggler navbar-toggler-right text-uppercase font-weight-bold bg-primary text-white rounded' type='button' data-toggle='collapse' data-target='#navbarResponsive' aria-controls='navbarResponsive' aria-expanded='false' aria-label='Toggle navigation'>Menu<i class='fas fa-bars'></i></button>" +
                    "<div class='collapse navbar-collapse' id='navbarResponsive'><ul class='navbar-nav ml-auto'><li class='nav-item mx-0 mx-lg-1'><a href='/admin' class='btn btn-primary'>Admin Panel</a></li><li class='nav-item mx-0 mx-lg-1'>" +
                    "<a href='/reports' class='btn btn-primary'>Reports</a></li><li class='nav-item mx-0 mx-lg-1'><a href='/users/logout' class='btn btn-primary'>Logout</a>" +
                    "</li></ul></div></div></nav>< br/><body><script src='https://kit.fontawesome.com/4a2ea255d5.js' crossorigin='anonymous'></script><div class='container-blog'><div class='container'><table class='table-primary table-bordered table' style='border-spacing: 10px;'>"+
                    "<tr><th>Reimburse?</th><th>Employee Name</th><th>Amount to be Reimbursed</th></tr><tr><form action='/expenseSubmit' method='post'>";
        await Expense.find({reimbursed: false}, function(err,data){
            if(err){
                console.log('Error Fetching Model');
                console.log(err);
            }
            expenseArray = data;
            expenseArray.forEach(function(data){
                console.log(data);
                count = count+1;
                html += "<td><input class='form-control' name=" + data._id + " type='checkbox' value='checked'></input></td>";
                html += "<td>" + data.user + "</td>";
                html += "<td> $" + data.amount + "</td>";
                html += "</tr><tr>";
                console.log(data._id);
            });
            html += "</tr></table><button class='btn btn-primary' type='submit'>Submit</button></form></div></body>";
            html += "<script src='js/freelancer.js'></script>";
            html += '<script src="https://cdn.jsdelivr.net/npm/popper.js@1.16.0/dist/umd/popper.min.js" integrity="sha384-Q6E9RHvbIyZFJoft+2mJbHaEWldlvI9IOYy5n3zV9zzTtmI3UksdQRVvoxMfooAo" crossorigin="anonymous"></script><script src="https://stackpath.bootstrapcdn.com/bootstrap/4.4.1/js/bootstrap.min.js" integrity="sha384-wfSDF2E50Y2D1uUdj0O3uMBJnjuUD4Ih7YwaYd1iqfktj0Uod8GCExl3Og8ifwB6" crossorigin="anonymous"></script><script src="public/js/freelancer.js"></script><script src="public/js/jqBootstrapValidation.js"></script><script src="public/js/contact_me.js"></script>';
            res.send(html);
        })
    }
    catch (e){
        res.send('error_msg');
        console.log(e);
    }
});

एक बार यह चलने के बाद, इसने डेटाबेस में उन सभी दस्तावेज़ों की एक तालिका बनाई, जिनकी अभी तक प्रतिपूर्ति नहीं की गई है। मैं उपयोगकर्ता को प्रतिपूर्ति के लिए बॉक्स चेक करने की अनुमति देना चाहता हूं जिसे वे जमा करना चाहते हैं। एक बार जब उपयोगकर्ता बॉक्स को चेक करता है और हिट सबमिट करता है, तो मैं चेकबॉक्स के माध्यम से साइकिल चलाने के लिए फ़ोरैच लूप का उपयोग करने का प्रयास कर रहा हूं और यह पता लगा रहा हूं कि कौन से दस्तावेज़ों को अद्यतन करने की आवश्यकता है।

//Expense Payout Backend
router.post('/expenseSubmit', ensureAuthenticated, async (req, res) => {
    try {
        await Expense.find({reimbursed: false}, function(err,data){
            if(err){
                console.log('Error Fetching Model');
                console.log(err);
            }
            expenseArray = data;
            expenseArray.forEach(function(data){

                if(data._id === 'checked'){
                    console.log('it worked');
                }
                else{
                    console.log("didn't work");
                }
            })
        })
    }
    catch (e){
        res.send('error_msg');
        console.log(e);
    };
});

मेरे पास दूसरे पृष्ठ के लिए यही है। अगर मैं req.body का उपयोग करने का प्रयास करता हूं, तो यह अपरिभाषित देता है। क्या ऐसा करने का कोई आसान तरीका है? मुझसे कहां गलती हो रही है?

अग्रिम धन्यवाद

0
The Traveling Coder 23 जिंदा 2020, 01:56

1 उत्तर

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

यदि आपका req.body अपरिभाषित है, तो सुनिश्चित करें कि आप पहले से ही body-parser का उपयोग कर रहे हैं।

👨‍🏫 उदाहरण के लिए: आप अपने एक्सप्रेस ऐप में मिडलवेयर का उपयोग कर सकते हैं

app.use(express.json());
app.use(express.urlencoded({extended: true}));

💡 आपके द्वारा इस मिडलवेयर को जोड़ने के बाद, अब आप पुन: प्रयास कर सकते हैं और देख सकते हैं, आपका req.body अपरिभाषित नहीं है।

उदाहरण के लिए आप इस लिंक पर देख सकते हैं: https://codesandbox .io/s/brave-noether-j6xgv

मुझे आशा है कि यह आपकी मदद कर सकता है 🙏।

1
Titus Sutio Fanpula 23 जिंदा 2020, 12:30