body-parser 已弃用未定义扩展:提供扩展选项 server.js:11:20

Arp*_*dey 0 forms node.js express

我没有得到输出,这基本上是一个简单的登录表单,当我在表单中提交电子邮件 ID 和密码时收到错误。

const express = require('express');
const path = require('path');
const bodyparser = require("body-parser");
const session = require('express-session');
const {v4:uuidv4} = require('uuid');
const router = require('./router');
const app = express();

const port = process.env.PORT||3000;

app.use(bodyparser.urlencoded({extends: true}));
app.use(bodyparser.json());
app.set('view engine','ejs');
//load static assets
app.use('/static', express.static(path.join(__dirname,'public')))
app.use('/static', express.static(path.join(__dirname, 'public/assets')))
app.use(session({
    secret:'uuidv4()',
    resave:false,
    saveUninitialized:true
}))
app.use('/route', router);
//home route
app.get('/',(req,res)=>{
    res.render('base',{title:'Login System'});
})
app.listen(port, ()=>{console.log('Server started at port 3000')});
Run Code Online (Sandbox Code Playgroud)

在浏览器中:

类型错误:无法读取未定义的属性“电子邮件”

在命令终端中:

body-parser 已弃用未定义扩展:提供扩展选项 server.js 服务器在端口 3000 启动

路由器代码:

const e = require('express');
var express = require('express');
var router = express.Router();

const credentials = {
    email:'admin@gmail.com',
    password:'admin123'
}
router.post('/login', (res, req)=>{
    if(req.body.email == credentials.email && req.body.password == credentials.password)
    {
        req.session.user=req.body.email;
        //res.redirect('/dashboard');
        res.end('Login sucessful!');
    }
    else
    {
        res.end('Invalid username or password');
    }
})

module.exports=router;
Run Code Online (Sandbox Code Playgroud)

这是我使用的表单代码:

<%-include('header')-%>

<div class="text-center center-div" id="login">
  <div class="container w-25 border py-5">
    <div class="title">
      <h2 class="font-weight-bold">Login System</h2>
      <span>Login for existing users</span><br><br><br>
    </div>
    <form action="/route/login" method="POST" class="pt-3">
      <div class="frm-group">
        <input
          type="email"
          class="form-control"
          placeholder="email"
          name="email"
        />
        <small class="form-text text-muted"
          >Register email address</small
        >
      </div>
      <br>
      <div class="form-group">
        <input
          type="password"
          class="form-control"
          name="password"
          placeholder="password"
        />
      </div>
      <br>
      <button type="submit" class="btn btn-success rounded-pill">Submit</button>
    </form>
  </div>
</div>

<%-include('footer')-%>
Run Code Online (Sandbox Code Playgroud)

Moh*_*aby 5

要解决未定义的问题,请替换extendsextended并消除弃用警告app.use(express.json());,正如您在express github第15行和第78行app.use(express.urlencoded({ extended: true })); 中看到的那样,body-parser是express的一部分