Welcome to the Treehouse Community

The Treehouse Community is a meeting place for developers, designers, and programmers of all backgrounds and skill levels to get support. Collaborate here on code errors or bugs that you need feedback on, or asking for an extra set of eyes on your latest project. Join thousands of Treehouse students and alumni in the community today. (Note: Only Treehouse students can comment or ask questions, but non-students are welcome to browse our conversations.)

Looking to learn something new?

Treehouse offers a seven day free trial for new students. Get access to thousands of hours of content and a supportive community. Start your free trial today.

JavaScript Build a Simple Dynamic Site with Node.js Creating a Basic Template Engine in Node.js A Simple Merge Utility

Implementation of the merge method

Hi Team, I run this function in Visual Code and replace the name in the content, but the Challenge does not approve it. I don't know what is missing!!!! Greetings...

var utilities = require("./utilities");

var mailValues = {};

mailValues.first_name = "Janet";

var emailTemplate = "Hi %first_name%! Thanks for completing this code challenge :)";

var mergedContent = utilities.merge(emailTemplate, mailValues);

//mergedContent === "Hi Janet! Thanks for completing this code challenge :)";
function merge(content, values) {
  content = content.replace(/%first_name%/, values.first_name);
  return content;

module.exports.merge = merge;

2 Answers

Steven Parker
Steven Parker
217,602 Points

This implementation will only replace a token for "first name". What the instructions are asking for is a module that would replace any number of tokens using an object with any number of values.

Hint: You'll probably need a loop.

The video on Binding Values gives an example of how to do this. In the video, he says "You will want to Cycle over the keys, then Replace all {{key}} with the value from the values object." The only difference is that you aren't using the double curly braces as the key delimiter, but rather percent signs. If you take the rest of the info from the code in the video, it should work for you (that's what I did and it worked).