JavaScript Express Basics Using Templates with Express Review Response.render

Kyle Johnson
Kyle Johnson
32,640 Points

Pass the posts object to your template, naming it "posts".

I think this code challenge is incorrect but maybe I'm missing something. Here is my code.

app.js
const express = require('express');
const posts = require('./mock/posts.json');

const app = express();

app.set('view engine', 'pug');
app.set('views', __dirname + '/templates');

app.get('/', (req, res) => {
  res.render('main', {posts: "posts"});
});


app.listen(3000, () => {
  console.log("The frontend server is running on port 3000!");
});
Benny Ogidan
Benny Ogidan
17,948 Points

Remove the semi colon as we are taking the variable from app.js

6 Answers

Kyle Johnson
Kyle Johnson
32,640 Points

So it looks like the correct answer is:

res.render('main', {posts});

You need to pass the 'variable' and not the string "posts", below is what is needed:

res.render('main', {posts: posts});
Seth Kroger
Seth Kroger
56,385 Points

You should be passing the variable posts defined at the top, not the string "posts".

Kyle Johnson
Kyle Johnson
32,640 Points

With the below code, the code challenge states the quoted below. I feel like this needs to be updated since that does help.

Bummer! missing ) after argument list.

res.render('main', post: "posts");

Here is what I did:

res.render('main', {posts: posts});
John Lukacs
John Lukacs
26,210 Points

Nothing is working can you post your code that worked to pass the challenge

John Lukacs
John Lukacs
26,210 Points

if you look at this line of code should there not be an extra bracket added ~app.get('/', (req, res)~