Welcome to the Treehouse Community

Want to collaborate on code errors? Have bugs you need feedback on? Looking for an extra set of eyes on your latest project? Get support with fellow developers, designers, and programmers of all backgrounds and skill levels here with the Treehouse Community! While you're at it, check out some resources Treehouse students have shared here.

Looking to learn something new?

Treehouse offers a seven day free trial for new students. Get access to thousands of hours of content and join thousands of Treehouse students and alumni in the community today.

Start your free trial

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...

index.js
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 :)";
utilities.js
function merge(content, values) {
  content = content.replace(/%first_name%/, values.first_name);
  return content;
}


module.exports.merge = merge;

2 Answers

Steven Parker
Steven Parker
231,275 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).