我有以下快递路线:
var data = [
{
id: 1,
title: 'aide-memoire'
},
{
id:2,
title: 'apres moi'
}
];
app.get('/', function (req, res) {
res.render('photo/list', {
data: data
});
});
在我的JADE模板中,我得到的数据如下:
!!!5
html
head
body
script
var data = !{JSON.stringify(calculates)};
但是我在这样的客户端上得到了这个数据数组:
<!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>
但我需要将非ASCII字符编码为\ uXXXX序列,如下所示:
[
{"id":1, "title": "aide-m%E9moire"},
{"id":2, "title": "apr%E8s%20moi"}
]
我怎样才能在快递/玉器中做到这一点?
答案 0 :(得分:6)
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"}]
虽然这完全没用,并且它无需CPU来提供更大的响应:/请记住,node.js中使用的每个CPU周期都是一个CPU周期,除非你集群,否则整个服务器都会关闭。