How o encode non-ASCII characters as \uXXXX sequences in express/jade

I have the following express route:

var data = [
  {
     id: 1,
     title: 'aide-memoire'
  },
  {
     id:2,
     title: 'apres moi'
  }
];

app.get('/', function (req, res) {
    res.render('photo/list', {
     data: data
    });
});

In my JADE template I'm getting that data like the following:

!!!5
html
  head
  body
     script
       var data = !{JSON.stringify(calculates)};

But I get that data array on a client like this:

<!DOCTYPE html>
   <html>
      <head></head>
      <body>
          <script type="text/javascript">
             var data = [
               { "id":1, "title": 'aide-memoire'},
               { "id":2, "title": 'apres moi'}
             ];
          </script>
      </body>
   </html>

But I need to encode non-ASCII characters as \uXXXX sequences like the following:

[
  {"id":1, "title": "aide-m%E9moire"},
  {"id":2, "title": "apr%E8s%20moi"}  
]

How can I do that in express/jade?

JSON.stringify(["ä", "ä"]).replace(/[\u0080-\uFFFF]/g, function(m) {
    return "\\u" + ("0000" + m.charCodeAt(0).toString(16)).slice(-4);
});
//["\u00e4","\u00e4"]

JSON.stringify([{title: "ä"}, {title: "ä"}]).replace(/[\u0080-\uFFFF]/g, function(m) {
    return "\\u" + ("0000" + m.charCodeAt(0).toString(16)).slice(-4);
});
//[{"title":"\u00e4"},{"title":"\u00e4"}]

Although this is completely useless and it eats CPU for nothing to provide larger responses :/ Remember that each CPU cycle used in node.js is a CPU cycle where the entire server is down unless you cluster.

You have to escape your string to get non-ascii and unicode characters

> escape('résumé')
'r%E9sum%E9'
> escape('резюме')
'%u0440%u0435%u0437%u044E%u043C%u0435'