我希望我使用了正确的术语......我通常是一个Python人,所以我习惯了字典数据类型。不管怎样,我现在正在开发一个 Node 应用程序,我遇到了一个问题。我让用户从下拉菜单中进行选择,该菜单通过传递到 EJS 的字典对象数组进行填充。每个对象都有一个 slug 和一个名称。所以,它会是这样的:
const computers = [{slug: 'dell-desktop', name: 'Dell Desktop'}, {slug: 'macbook-pro', name: 'MacBook Pro'}, {slug: 'imac-27-inch', name: 'iMac, 27-Inch'}];
我使用名称填充表单,但我需要后端的 URL 内容。所以它看起来像这样:
app.get('/form', function(req, res){
res.render('form.ejs', {computers: computers});
});
总体而言,一切似乎都运行良好,表单按预期填充:
<select id = 'computer' name = 'computer'>
<% for (var i = 0; i<computers.length; i++) { %>
<option value = '<%= computers[i].slug %>'><%= computers[i].name %></option>
<% } %>
</select>
但是,我从表单收到的数据仅提供了数据。我的问题是,有没有一种好方法可以使用 slug 键从字典数组中获取名称?我已经尝试过这样的方法,但它不起作用,我想知道是否是因为它们在数组中?
app.post('/form', function(req, res){
var c_slug = req.body.computer;
var name = computers[c_slug];
console.log(c_slug);
console.log(name);
res.send('Success!')
});
我在搜索中找不到任何与此相关的内容。我找到了映射解释,但它获取了给定键的所有值。我希望我错过了一些明显的东西!
缥缈止盈
红糖糍粑
相关分类