首页 > 解决方案 > 如何使用 express.js 获取选择选项的值?

问题描述

我想使用 express.js 使用 post 方法检索“值”参数。我可以轻松检索在输入中输入的值,但我无法从选择中提出选项。这是我尝试过的。

我的文件.js:

app.post("/dashboard/:guildID", checkAuth, async (req, res) => {
        var storedSettings = await GuildSettings.findOne({ gid: guild.id });
        if (!storedSettings) {
          const newSettings = new GuildSettings({
            gid: guild.id
          });
          await newSettings.save().catch(()=>{});
          storedSettings = await GuildSettings.findOne({ gid: guild.id });
        }
        storedSettings.prefix = req.body.prefix
        storedSettings.channel_test = req.body.channel_name

        await storedSettings.save().catch(() => {});

    });

myEJS.ejs 文件 (html):

  <div>
    <form method="POST">
    <select>
      <% 
      let channelsText = guild.channels.cache.filter(channel => channel.type == 'text');
      channelsText.forEach(channel => { %>

      <option name="channel_name" value="<%= channel.id %>">#<%= channel.name %></option>
      
      <% }) %>

    </select>
    </form>
  </div>

我删除了不必要的代码。

console.log(req.body.channel_name)= undefined

我记得req.body.prefix(来自输入标签)工作得很好。

标签: htmlnode.jsexpress

解决方案


尝试向元素添加name属性:select

<select name="channel_name">
    <%
    let channelsText = guild.channels.cache.filter(channel => channel.type == 'text');
    channelsText.forEach(channel => { %>

    <option name="channel_name" value="<%= channel.id %>">#<%= channel.name %></option>

    <% }) %>

</select>

推荐阅读