Search code examples
javascriptjsonnode.jspugstringify

Evaluate custom javascript method (CircularJSON) with Jade


I want to parse an object into client-side javascript through Jade. Normally this would work:

script var object = JSON.parse(#{JSON.stringify(object)});

but my object is circular and I need to do this

script var object = CircularJSON.parse(#{CircularJSON.stringify(object)});

but it throws the error

Cannot call method 'stringify' of undefined

which I guess is because Jade doesn't recognise my CircularJSON method. Any way to make it?


Solution

  • It could be required and passed in the locals

    response.render("index.jade", {CircularJSON : require('circular-json')});
    

    Or it could be defined as a function in the scope of jade

    - var CircularJSON = function(e,t){function l(e,t,o){var u=[],...//whole function
    script var player = CircularJSON.parse('!{CircularJSON.stringify(player)}');