一尘不染

在node / express + ejs中将对象传递给客户端?

node.js

我有一个很大的对象,需要将其传递给客户端脚本中的函数。我尝试使用JSON.stringify,但是这种方法遇到了一些问题-
主要与性能有关。是否可以在ejs中执行类似的操作?

app.get('/load', function(req, res) {
    var data = {
        layout:'interview/load',
        locals: {
            interview: '',
            data: someLargeObj
        }
    };
    res.render('load', data);
});

在我的客户端脚本中,我会将这个对象传递给类似这样的函数

<script type="text/javascript">
    load(<%- data %>); // load is a function in a client script
</script>

当我尝试这个我得到

<script type="text/javascript">
    load();
</script>

要么

<script type="text/javascript">
    load([Object object]);
</script>

阅读 277

收藏
2020-07-07

共1个答案

一尘不染

那是预期的行为。您的模板引擎正在尝试从对象创建一个字符串,该字符串会导致[Object
object]。如果您真的想要传递这样的数据,我认为您通过对对象进行字符串化来做正确的事情。

2020-07-07