Tell us what’s happening:
I’m not able to validate the third point of the challenge Use the correct ExpressJS method to render the index page from the response.
.
I correctly rendered the page with:
res.render(process.cwd() + '/views/pug/index.pug');
But the assert regex doesn’t validate this sentence.
Your code so far
app.set('view engine', 'pug');
app.route("/").get((req, res) => {
res.render(process.cwd() + '/views/pug/index.pug');
});
Your browser information:
User Agent is: Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/81.0.4044.129 Safari/537.36
.
Challenge: set-up-a-template-engine
Link to the challenge:
Learn to code. Build projects. Earn certifications.Since 2015, 40,000 graduates have gotten jobs at tech companies including Google, Apple, Amazon, and Microsoft.
Welcome, nank.
I know this is not ideal, but the challenge tests are being re-worked. The way I got through most of them is by looking at the test code for each challenge to make sure I was doing what was being tested for: https://github.com/freeCodeCamp/freeCodeCamp/blob/master/curriculum/challenges/english/06-information-security-and-quality-assurance/advanced-node-and-express/set-up-a-template-engine.english.md
Here is the test expression for this test:
assert.match(data, /res(\s*)?\.(r\w{5})/gi)
You need to match the regex.
Looking over it, yours does match that. So, try moving the route around your script. It might randomly work.
Sorry, i could not be of more help. These tests are finicky.
1 Like
I passed this test
my code is here
"use strict";
const express = require("express");
const fccTesting = require("./freeCodeCamp/fcctesting.js");
const app = express();
const pug = require("pug");
const cors = require("cors");
app.use(cors());
fccTesting(app); //For FCC testing purposes
app.use("/public", express.static(process.cwd() + "/public"));
app.use(express.json());
app.use(express.urlencoded({ extended: true }));
app.set('view engine', 'pug')
app.route("/").get((req, res) => {
//Change the response to render the Pug template
res.render(process.cwd() + "/views/pug/index", {
title: "Hello",
message: "Please login"
});
});
app.listen(process.env.PORT || 3000, () => {
console.log("Listening on port " + process.env.PORT);
});
package
"dependencies": {
"express": "^4.17.1",
"cors": "^2.8.5",
"pug": "^2.0.4"
},
I put the same in my previous script and failed to pass test, then started a new one from the link in the challenge and literally replaced res.send to res.render
May be this would be helpful
2 Likes
Thank you, I fixed requiring and using the cors
dependency.
this worked for me:
res.render('pug/index');
note: do not forget to add pug dependency (“pug”: “^2.0.4”) to the package.json file.
Thanks stvo1980 for sharing this has helped me a lot!