使用nodejs vash模板通过脚本标记发送数据

时间:2015-02-05 01:17:01

标签: javascript node.js vash

我是nodejs的新手。尝试使用vash模板从nodejs服务器发送一些引导数据(登录用户)返回到具有索引页面的客户端。需要客户端上的自举数据,以根据用户是否已登录启用/禁用某些选项。

server.js如下所示:

app.get("*", function(req, res) {
    res.render("index", {
        title: "Page title",
        bootstrappedUser: req.user
    });
});

index.vash

@html.extend('layout', function(model) {
    @html.block("scripts", function(model){
        @if(model.bootstrappedUser) {
        @{
            var a = model.bootstrappedUser;
        }
            <script type="text/javascript">
                window.bootstrappedUser = JSON.stringify(@a);
            </script>
        }
   })
})

但这会导致&#34; UncaughtSyntaxError:意外的标识符&#34;在下面的stringify函数的客户端html中:

    <script type="text/javascript">
            window.bootstrappedUser = JSON.stringify([object Object]);
    </script>

我试图在Github上查找Vash page但是几乎没有关于使用vash的脚本块的文档。我在'index.vash&#39;中使用了正确的语法吗?或者是否有一些我错过的vash字符串插值?任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:0)

你必须从nodejs然后

通过JSON.stringfy(obj)发送数据
setorder(a, X, -Z)
indx <- a[, .I[seq_len(n)], by = X]$V1
a[indx]
#      ID  X         Z
#  1: DEF  1 0.8609154
#  2: GHI  1 0.6660838
#  3: DEF  2 0.6403106
#  4: ABC  2 0.6222994
#  5: GHI  3 0.6935913
#  6: ABC  3 0.6092747
#  7: ABC  4 0.6233794
#  8: GHI  4 0.5449748
#  9: GHI  5 0.2827336
# 10:  NA NA        NA

平均

server.js

   <script>
       var test = @html.raw(@model)
   </script>

index.vash

app.get("*", function(req, res) {
    res.render("index", {
        title: "Page title",
        bootstrappedUser: JSON.stringfy(req.user)
    });
});