基本上,我正在使用数据库转储.sql文件来重新创建数据库。每行都包含一些整数值,并以varchar结尾,varchar是国家/地区名称。当在app.js中呈现索引页面时,所有国家/地区名称都会进入一个下拉列表。但是,有一个国家/地区的名称中带有逗号,即使逗号位于引号中,当呈现时,它也会部分显示为几个不同的国家/地区在逗号上分开。
该国家/地区在数据库中的书写方式为:
'UK - NI, Channel Islands, Highlands & Islands'
但在下拉列表中显示为:
UK - NI
Channel Islands
Highlands & Islands
在app.get(“ /”,(req,res)函数中,我有一个名为destinations的数组,该数组在数据库中附加了每个国家/地区。我尝试在函数内打印目标,但它们总是出现在顺序(有问题的国家作为一个条目出现)。我认为在渲染页面时出现问题,但是我无法弄清楚为什么或如何解决它。
首先,app.js:
app.get("/", (req, res) =>{
var destinations = [];
...
// in the db query:
rows.forEach((row) => {
destinations.push(row.country);
});
// then I'm querying some other int values that have nothing to do with it
// and at the end of app.get:
res.render("index.hbs",{destinations:destinations});
对不起,我不允许显示完整代码。
dump.sql:
(2,'other',0,30,31,33,,0,0,2,'UK - NI, Channel Islands, Highlands & Islands'),
index.hbs:
<script type="text/javascript">
var destinations = '{{destinations}}'.replace(/&/g,
'\&').replace(/'/g,'\'').split(',');
var dropdown = document.getElementById('pickup_selector');
for (var country in destinations) {
var country_option = document.createElement("OPTION");
country_option.setAttribute("id",destinations[country]+"_option");
country_option.textContent = destinations[country];
country_option.setAttribute("value",destinations[country]);
dropdown.appendChild(country_option);
};
</script>
下拉列表中的预期结果:
country1
UK - NI, Channel Islands, Highlands & Islands
country3, ...
实际结果:
country1
UK - NI
Channel Islands
Highlands & Islands
country3...
更新: 从index.html删除拆分后,现在会在每个符号上拆分国家。因此,每个符号(天气是字母,空格或逗号)在下拉菜单中都有其自己的选项。