Passing objects from NodeJS to client and then into KnockoutJS viewmodel

So thanks to SO I can pass an object from node to the client, but then getting it into a knockout view model is a bit awkward. These are the steps I have so far (I've included links to the relevant lines as they appear in my github project. Thought the context might help.):

  1. Apply JSON.stringify and pass to the jade file

    recipeJSON: JSON.stringify(recipe);
    
  2. Wrap this in a function in a header script that just parses the JSON and returns the result

        script        
            function getRecipeObject() {
                var r = '!{recipeJSON}';
                return JSON.parse(r);
            }
    
  3. Call this function and pass the result to a view model constructor

    self.recipe = ko.observable(new Recipe(getRecipeObject()));
    

This works but is there a better way?

Question clarification (Edit): I feel step 2 shouldn't be necessary. Is there a way to directly pass the JSON from node to the Recipe() constructor, without the getRecipeObject() acting as an intermediate step? I tried passing recipeJSON in directly like so

self.recipe = ko.observable(JSON.parse('!{recipeJSON}'));

That doesn't work I think because its not a jade template and has no access to the variable.

According to the answer to this question rendering data into scripts is bad practice and I should instead make an XHR call on page load instead.