Skip to main content

Why can I access and console.log the key value data from mongdb, but not in ejs file?

I'm trying to create a page where there are two inputs to query two database collections and then display data in a table and in a title.

The "job" data seems to renders no problem, the "operative" data only displays as a raw object like this:

page display thus far

If I try to access and inject the "operative" name using <%= operative.name %>, I get a "Cannot read property "name" of null."

Here is the express code:

app.get('/rounds/new', async(req, res) => {
const { number } = req.query;
const { employee } = req.query;
const round = await Job.find({ roundNumber: number });
const operative = await Operative.findOne({ name: employee });

res.render('rounds/new', { round, operative })

});

And this displays the raw object data:

<h2><%= operative %></h2>

This creates an error:

<h2><%= operative.name %></h2>

To summarise, I can get the raw "operative" data but I can't access and inject the key values from it without throwing an error. The other "job" one works perfectly.

Whats going on?

EDIT: If it helps...if I click search with <%= operative %> in the html page, the raw data displays as usual however if I immediately go to the code editor and change the code to `<%= operative.name %>, save and refresh the page when the data is still being displayed (as seen in the image), it changes to just 'Billy' - the intended result.

Via Active questions tagged javascript - Stack Overflow https://ift.tt/2FdjaAW

Comments