mongodb 我的表单输入在我的GET请求中以express返回空值

nfs0ujit  于 2022-11-28  发布在  Go
关注(0)|答案(1)|浏览(136)

我有一个表单,我想让用户输入一个名称,这样我就可以搜索我的mongodb,但在我的GET请求中,输入的名称是空的。
index.ejs:

<form action="entry" method="GET">
    <label>Enter Name <input  type="text" name="name"></label>
    <input class="submitbtn" type="submit" value="name" class="btn btn-lg btn-danger">
    </form>

  </div>

entry.ejs:

router.get("/entry" , async(req, res) => {
 
  const allEntries = await  dailyUsage.find();

  const {name} = req.body;
  
  console.log(name)

控制台日志显示名称为空

xxhby3vn

xxhby3vn1#

在设置路由之前,您需要安装body-parser。您可以选中body-parse

var express = require('express')
var bodyParser = require('body-parser')

var app = express()

// parse various different custom JSON types as JSON
app.use(bodyParser.json({ type: 'application/*+json' }))

// parse some custom thing into a Buffer
app.use(bodyParser.raw({ type: 'application/vnd.custom-type' }))

// YOUR ROUTES HERE

你也可以使用中间件这样。

app.use(function(req, res, next){
   var data = "";
   req.on('data', function(chunk){ data += chunk})
   req.on('end', function(){
       req.rawBody = data;
       req.jsonBody = JSON.parse(data);
       next();
   })
})

并且如果您使用中间件方法,则使用req.jsonBody而不是req.body

相关问题