如何使用express.js获取select选项的值



我想检索;值";参数。我可以很容易地检索在输入中输入的值,但我无法从选择中找到选项。这是我试过的。

myFile.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(来自一个输入标签(工作得很好。

尝试将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>

最新更新