首页 > 解决方案 > 如何使用 Node.js 将选择选项的值显示为响应

问题描述

我是 Node.js 和 Express 的新手

我正在尝试从 HTML 页面的选择列表中获取选定的选项,并使用 node.js 显示为响应

HTML

<form name="survey" id="survey" method="post" action="/survey">
    <select name="monthofbirth">
        <option value="1">January</option>
        <option value="2">February</option>
        <option value="3">March</option>
        <option value="4">April</option>
        <option value="5">May</option>
        <option value="6">June</option>
        <option value="7">July</option>
        <option value="8">August</option>
        <option value="9">September</option>
        <option value="10">October</option>
        <option value="11">November</option>
        <option value="12">December</option>
    </select>
</form>

索引.JS

var express = require('express')
var bodyParser = require("body-parser");
var app = express()

app.use(express.static('public'))

app.use(bodyParser.urlencoded({ extended: false }));

app.post('/survey', function (req, res) {
    let month = req.body.monthofbirth;
});

app.listen(3000, function () {
    console.log('Example app listening on port 3000!')
})

当我尝试使用代码 res.write( <b>${month}</b>) 打印响应时;它显示选项的值,如 1、2、3 等,但我必须显示文本,如一月、二月等。

这个你能帮我吗 :(

编辑:

我不应该更改 HTML 文档,因此我将无法将选项值从 1、2、3 更改为一月、二月等;

标签: node.jsexpressbody-parser

解决方案


这是正常的,因为附加到每个选项的值是数字(1,2,3,4,...12),如果你想获得月份名称,你必须改变你选择这样的选项

<select name="monthofbirth">
    <option value="January">January</option>
    <option value="February">February</option>
    <option value="March">March</option>
    <option value="April">April</option>
    <option value="May">May</option>
    <option value="June">June</option>
    <option value="July">July</option>
    <option value="August">August</option>
    <option value="September">September</option>
    <option value="October">October</option>
    <option value="November">November</option>
    <option value="December">December</option>
</select>

推荐阅读