【问题标题】:Uncaught SyntaxError: Unexpected identifier on res.Render - NodeJS未捕获的 SyntaxError:res.Render 上的意外标识符 - NodeJS
【发布时间】:2020-05-27 16:08:28
【问题描述】:

我在使用 res.Render() 发送变量时在客户端遇到错误。

我想发送一个包含数组的对象:

NodeJs:

var countries_lat_lng = [];
        trip.countries.forEach(country => {
            var country_lat_lng = {'latlng': CountriesJSON.find(f => f.alpha2Code == country.code).latlng};
            countries_lat_lng.push(country_lat_lng);
        });
        console.log(countries_lat_lng); //value: [ { latlng: [ -27, 133 ] }, { latlng: [ -41, 174 ] } ]
        res.render('myView', {
            coutriesLatLng: {countries_lat_lng}
        });

Javascript:

        var countriesMarkers = <%= coutriesLatLng %>;

我在 chrome 上出现以下错误:

    var countriesMarkers = [object Object]; Uncaught SyntaxError: Unexpected identifier

当我 console.log() 我的 countries_lat_lng 变量时,一切似乎都正常,但在 javascript 中呈现时出现错误。 非常感谢您的帮助。

【问题讨论】:

    标签: javascript node.js object ejs


    【解决方案1】:

    &lt;%= ... %&gt; 用于输出 HTML,因此它所做的就是将您的对象转换为字符串并进行 HTML 编码以供输出。由于您正在生成 JavaScript,因此您要做的是将数据的 JSON 以非转义格式直接输出到您的 JS 代码中。

    假设coutriesLatLngArray,请更改:

    var countriesMarkers = <%= coutriesLatLng %>;
    

    ...到:

    var countriesMarkers = <%- JSON.stringify(coutriesLatLng) %>;
    

    JSON.stringify 会将您的 Array 转换为 JSON,它可以解释为 JavaScript 表达式。 &lt;%- 用于输出 JSON 而不对其进行 HTML 转义,因此 " 不会变成 &amp;quot;,例如。

    【讨论】:

    • 非常感谢!现在输出很好!感谢您花时间为我服务!
    【解决方案2】:

    试试这个

    var countriesMarkers = JSON.stringify('<%- coutriesLatLng %>');
    

    我也可以在这里看到一个问题

    res.render('myView', {
          coutriesLatLng: {countries_lat_lng}
    });
    

    我觉得应该是这样的

    res.render('myView', {
          coutriesLatLng: countries_lat_lng
    });
    

    【讨论】:

    • 我有同样的错误这样做:/ var countriesMarkers = JSON.parse([object Object]);未捕获的 SyntaxError:意外的标识符
    • 仍然不工作,但错误不一样^^ var countriesMarkers = JSON.parse([{"latlng":[-27,133]},{"latlng& #34;:[-41,174]}]); Uncaught SyntaxError: Unexpected token '&'
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-02-07
    • 1970-01-01
    • 2013-09-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多