【发布时间】:2020-08-29 08:23:18
【问题描述】:
我需要在网页上创建两个下拉菜单 - (第二个下拉菜单取决于第一个下拉菜单) - 并使用 .csv 文件的两个不同列中的记录填充这两个菜单。
我可以使用 NodeJS 读取 csv 文件并将所需的列放入两个不同的数组中,如下所示:
uniqueCountryName
[
'Italy',
'Spain',
'France',
'England'
]
uniqueCityName
[
'Paris',
'Milan',
'Marseilles',
'Venice'
'London',
'Rome',
'Berlin',
'Madrid',
'Barcelona'
]
这是我目前使用的nodeJS代码:
const csv = require('csv-parser');
const fs = require('fs');
const results = [];
const CountryName = [];
const CityName = [];
fs.createReadStream('C:/Users/learningsql/Desktop/project.csv')
.pipe(csv())
.on('data', (data) => results.push(data))
.on('end', () => {
var CountryName = []
for (var item in results) {
CountryName.push(results[item]["CountryName"])
}
/* console.log(CountryName) */
const uniqueCountryName = Array.from(new Set(CountryName));
console.log("uniqueCountryName")
console.log(uniqueCountryName)
});
fs.createReadStream('C:/Users/learningsql/Desktop/project.csv')
.pipe(csv())
.on('data', (data) => results.push(data))
.on('end', () => {
for (var item in results) {
CityName.push(results[item]["CityName"])
}
/* console.log(CityName) */
const uniqueCityName = Array.from(new Set(CityName));
console.log("uniqueCityName")
console.log(uniqueCityName)
});
现在我需要做两件事:首先,我需要在网页上的两个不同下拉菜单中填充这两个不同的数组。 CountryName 应该进入第一个下拉菜单,CityName 应该进入第二个下拉菜单。我的理解是浏览器无法读取终端的输出,所以我们需要使用 Express.JS 设置服务器。我该怎么做?
第二,正如我已经提到的,第二个下拉记录应该依赖于第一个,我们如何映射/链接两个数组?例如,当我在第一个下拉菜单中选择意大利时,只有意大利城市(米兰、威尼斯、罗马等)应该显示在第二个下拉菜单中。如果我选择西班牙,下拉菜单中应该只显示西班牙城市(马德里、巴塞罗那等)。
作为参考,下拉菜单应该是like this
我是 NodeJS 的新手,任何帮助都将不胜感激。谢谢。
【问题讨论】:
标签: javascript html arrays node.js drop-down-menu