如何通过 Node + Express + Mongoose 中的单选按钮传递布尔值?

Posted

技术标签:

【中文标题】如何通过 Node + Express + Mongoose 中的单选按钮传递布尔值?【英文标题】:How can I pass a boolean value through a radio button in Node + Express + Mongoose? 【发布时间】:2021-12-13 05:39:51 【问题描述】:

所以我正在建立一个猫救援网站,当我添加一只新猫时,我希望能够通过单选按钮添加它的性别(意思是,如果选择了“男性”单选,它应该返回 true,或者如果选择了“女性”,则应返回 false),有人知道如何执行此操作吗?

这是 html 中的两个单选按钮

<input class="form-check-input" type="radio" name="cat[sex]" id="radioMale" value="true">

<input class="form-check-input" type="radio" name="cat[sex]" id="radioFemale" value="false">
                        

这是我的 javascript 文件中的 POST 路由

app.post('/cats', async (req, res) => 
    const cat = new Cat(req.body.cat);
    await cat.save();
    res.redirect(`/cats/$cat._id`);
) 

所以我尝试将值硬编码到输入中,但它不起作用。我不知道如何解决这个问题

【问题讨论】:

【参考方案1】:

req.body 不会自动填充已发布的数据。 5.x Express documentation 提供以下示例,需要安装和使用 NPN 包

body-parsermulter

示例:

const app = require('express')()
const bodyParser = require('body-parser')
const multer = require('multer') // v1.0.5
const upload = multer() // for parsing multipart/form-data

app.use(bodyParser.json()) // for parsing application/json
app.use(bodyParser.urlencoded( extended: true )) // for parsing application/x-www-form-urlencoded

app.post('/profile', upload.array(), function (req, res, next) 
  console.log(req.body)
  res.json(req.body)
)

source


这与4.x documentation 中显示的示例不同,后者看起来更简单,您可以尝试其他方法。如果您想研究如何在 Express 中解码表单数据,您无疑会在此站点上找到更多的变体和更不用说的多个类似问题。

【讨论】:

以上是关于如何通过 Node + Express + Mongoose 中的单选按钮传递布尔值?的主要内容,如果未能解决你的问题,请参考以下文章

如何通过 Node + Express + Mongoose 中的单选按钮传递布尔值?

如何使用 node-orm2 通过 Express 对两个或多个数据库进行建模?

如何读取通过服务器端 (node-express) 上的 Passport 设置的客户端 (react) cookie?

如何使用 express 框架通过 node.js 获取远程客户端的本地 IP 地址?

如何通过使用 node.js 和 express 的 onclick 将数据从一个页面传递到另一个页面?

node.js 和 express:如何等待 udp 响应