Jade / Expressjs:将对象从服务器传递到客户端
Jade / Expressjs: Pass objects from server to client
我试图将一个对象从我的端点传递到 Jade,但它一直给我未捕获的语法错误:Stat 上的意外标识符!有谁可以帮助我吗。这是我的代码:
app.get('/stats', function (req, res, next) {
var stats ={
'm0t20': {a:0,b:0,c:0,d:0},
'm20t30': {a:0,b:0,c:0,d:0},
};
res.render('chart',{'stat':stats});
}
在我的玉石中,我无法获得统计值:
script(type='text/javascript').
var stats= #{stat};
如果你想从你的表达中插入对象,最简单和最干净的方法是序列化它们。
目前,一旦插值,您将尝试编写如下内容:
var stats = [Object object];
这不是有效的 JavaScript 语法:/
因此,在服务器端,序列化您的对象:
app.get(..., function (req, res) {
var stats = { ... };
res.render('chart', { stats: JSON.stringify(stats) });
});
并且,在客户端,只使用序列化的对象;您需要使用 !
而不是 #
来防止 jade 转义引号等字符。
script.
var stats = !{stats};
alert(stats.myProp);
请记住,您正在将 JavaScript 代码直接注入您的页面。
如果序列化对象可以包含任何用户输入,请不要这样做
我试图将一个对象从我的端点传递到 Jade,但它一直给我未捕获的语法错误:Stat 上的意外标识符!有谁可以帮助我吗。这是我的代码:
app.get('/stats', function (req, res, next) {
var stats ={
'm0t20': {a:0,b:0,c:0,d:0},
'm20t30': {a:0,b:0,c:0,d:0},
};
res.render('chart',{'stat':stats});
}
在我的玉石中,我无法获得统计值:
script(type='text/javascript').
var stats= #{stat};
如果你想从你的表达中插入对象,最简单和最干净的方法是序列化它们。 目前,一旦插值,您将尝试编写如下内容:
var stats = [Object object];
这不是有效的 JavaScript 语法:/ 因此,在服务器端,序列化您的对象:
app.get(..., function (req, res) {
var stats = { ... };
res.render('chart', { stats: JSON.stringify(stats) });
});
并且,在客户端,只使用序列化的对象;您需要使用 !
而不是 #
来防止 jade 转义引号等字符。
script.
var stats = !{stats};
alert(stats.myProp);
请记住,您正在将 JavaScript 代码直接注入您的页面。
如果序列化对象可以包含任何用户输入,请不要这样做