Uncaught SyntaxError: Unexpected identifier on res.Render - NodeJS
Uncaught SyntaxError: Unexpected identifier on res.Render - NodeJS
我在使用 res.Render() 发送变量时在客户端遇到错误。
我想发送一个包含数组的对象:
节点:
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 中我有一个错误。
非常感谢您的帮助。
试试这个
var countriesMarkers = JSON.stringify('<%- coutriesLatLng %>');
我也看到这里有问题
res.render('myView', {
coutriesLatLng: {countries_lat_lng}
});
我觉得应该是
res.render('myView', {
coutriesLatLng: countries_lat_lng
});
<%= ... %>
用于输出 HTML,因此它所做的是将您的对象转换为字符串并 HTML 对其进行编码以供输出。由于您正在生成 JavaScript,因此您要做的是将数据的 JSON 以非转义格式直接输出到您的 JS 代码中。
假设 coutriesLatLng
是一个 Array
,更改为:
var countriesMarkers = <%= coutriesLatLng %>;
...收件人:
var countriesMarkers = <%- JSON.stringify(coutriesLatLng) %>;
JSON.stringify
会将您的数组转换为 JSON,这可以解释为 JavaScript 表达式。 <%-
用于输出 JSON 而无需 HTML-转义它,因此 "
不会变成 "
,例如。
我在使用 res.Render() 发送变量时在客户端遇到错误。
我想发送一个包含数组的对象:
节点:
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 中我有一个错误。 非常感谢您的帮助。
试试这个
var countriesMarkers = JSON.stringify('<%- coutriesLatLng %>');
我也看到这里有问题
res.render('myView', {
coutriesLatLng: {countries_lat_lng}
});
我觉得应该是
res.render('myView', {
coutriesLatLng: countries_lat_lng
});
<%= ... %>
用于输出 HTML,因此它所做的是将您的对象转换为字符串并 HTML 对其进行编码以供输出。由于您正在生成 JavaScript,因此您要做的是将数据的 JSON 以非转义格式直接输出到您的 JS 代码中。
假设 coutriesLatLng
是一个 Array
,更改为:
var countriesMarkers = <%= coutriesLatLng %>;
...收件人:
var countriesMarkers = <%- JSON.stringify(coutriesLatLng) %>;
JSON.stringify
会将您的数组转换为 JSON,这可以解释为 JavaScript 表达式。 <%-
用于输出 JSON 而无需 HTML-转义它,因此 "
不会变成 "
,例如。