I am trying to display multiple documents from mongodb on my frontend html using node.js and express. it basically gets document from my mongodb and then it sends it to the ejs file and the loop executes the code, but i dont know what i am doing wrong here. please help... here is my code snippet...
var jobSchema = new mongoose.Schema({
Company: String,
Job_Title: String,
Job_Description: String,
Payment: String,
Phone: String,
Email: String
})
var Job = mongoose.model('Job', jobSchema, 'Jobs')
app.post("/seejobs", function (req, res) {
Job.find().toArray(function(err, docs) {
if(err) throw err;
res.render('main', {'docs': docs});
});
});
and my ejs looks like...
<% for (var d=0 ; d < docs.length ; d++){%>
<h1>Company : <%= docs[d].Company %></h1>
<h1>Job Title : <%= docs[d].Job_Title %></h1>
<h1>Job Description : <%= docs[d].Job_Description %></h1>
<h1>Payment : <%= docs[d].Payment %></h1>
<h1>Phone : <%= docs[d].Phone %></h1>
<h1>Email : <%= docs[d].Email %></h1>
<% } %>
and here is the error i get...
TypeError: Job.find(...).toArray is not a function
at C:\Users\Xander CaGe\Desktop\Projects\Joby\app.js:53:16
at Layer.handle [as handle_request] (C:\Users\Xander CaGe\Desktop\Projects\Joby\node_modules\express\lib\router\layer.js:95:5)
at next (C:\Users\Xander CaGe\Desktop\Projects\Joby\node_modules\express\lib\router\route.js:137:13)
at Route.dispatch (C:\Users\Xander CaGe\Desktop\Projects\Joby\node_modules\express\lib\router\route.js:112:3)
at Layer.handle [as handle_request] (C:\Users\Xander CaGe\Desktop\Projects\Joby\node_modules\express\lib\router\layer.js:95:5)
at C:\Users\Xander CaGe\Desktop\Projects\Joby\node_modules\express\lib\router\index.js:281:22
at Function.process_params (C:\Users\Xander CaGe\Desktop\Projects\Joby\node_modules\express\lib\router\index.js:335:12)
at next (C:\Users\Xander CaGe\Desktop\Projects\Joby\node_modules\express\lib\router\index.js:275:10)
at C:\Users\Xander CaGe\Desktop\Projects\Joby\node_modules\body-parser\lib\read.js:130:5
at invokeCallback (C:\Users\Xander CaGe\Desktop\Projects\Joby\node_modules\raw-body\index.js:224:16)
at done (C:\Users\Xander CaGe\Desktop\Projects\Joby\node_modules\raw-body\index.js:213:7)
at IncomingMessage.onEnd (C:\Users\Xander CaGe\Desktop\Projects\Joby\node_modules\raw-body\index.js:273:7)
at IncomingMessage.emit (events.js:333:22)
at endReadableNT (_stream_readable.js:1201:12)
at processTicksAndRejections (internal/process/task_queues.js:84:21)
Can anyone help with my code?
i dont know what i am doing wrongWe don't know either :) What's the output? What do you see happening? Any error? Crash? Are you getting a blank page? Anything? All we can suppose is that "something" doesn't happen as expected, but what? As far as I can tell, this code doesn't look bad