NodeJS Express.js“类型错误:无法读取请求主体中未定义”“的属性

64jmpszr  于 2022-11-22  发布在  Node.js
关注(0)|答案(2)|浏览(154)

`

router.post("/login", (req, res) => {
    console.log(req.body.username)
    console.log(req.body.password)
    
    res.redirect("/")
})

``

<body>
    <form action="/register" method="post">
        <label for="username">

        </label>
        <input type="text" name="username" placeholder="Username" id="username" required>
        <label for="password">
            <i class="fas fa-lock"></i>
        </label>
        <input type="password" name="password" placeholder="Password" id="password" required>
        <input type="submit" value="Login">
    </form>
</body>

`
我刚开始学习express,但已经有一个问题,我找不到任何修复。不知何故,req.body变量在帖子中未定义。这将是一个登录系统。(抱歉,我的英语不好)
我第一次尝试这样做在github:https://github.com/WebDevSimplified/express-crash-course,但我仍然有“类型错误:无法读取控制台中未定义“的属性”错误。所以我在寻找其他内容时发现了此错误:https://codeshack.io/basic-login-system-nodejs-express-mysql/我的代码是基于codeshack示例的,但仍然出现错误。

yquaqz18

yquaqz181#

如果你想访问post请求的主体,我们需要使用express中间件,它将解析请求的主体,并将其附加到req.body对象下。为了做到这一点,我们可以使用express.urlencoded()中间件。有关更多信息,请链接

router.post("/login",express.urlencoded({ extended: true }) , (req, res) => {
    console.log(req.body.username)
    console.log(req.body.password)
    res.redirect("/")
})
wixjitnu

wixjitnu2#

在处理程序之前添加中间件
应用程序.use(bodyParser.urlencoded({扩展的:false }))

相关问题