最新消息: 电脑我帮您提供丰富的电脑知识,编程学习,软件下载,win7系统下载。

节点Js中的请求主体为空

IT培训 admin 12浏览 0评论

节点Js中的请求主体为空

在我的Node应用程序中,我试图查看request.body对象,以检查其中是否包含元素,但是console.log(req.body)将其清空。这是我的文件。

[下面的app.js文件

var express = require("express");
var app = express();
var mongoose = require("mongoose");
var nationalPark = require("./models/NationalParks");



//config
mongoose.connect('mongodb://localhost/National_Parks', {useNewUrlParser: true, useUnifiedTopology: true}).catch(function(reason){
    console.log('Unable to connect to the mongodb instance. Error: ', reason);
});
app.set('view engine', 'ejs');
var bod = require("body-parser");
app.use(bod.urlencoded({extended:true}));
app.use(bod.json());


app.use(express.static(__dirname + '/resources'));


//Routes
app.get("/",function(req,res){
    nationalPark.find({},function(err,nationalParks){
        if(err){
            console.log(err);
        }else{

            res.render("home",{nationalParks:nationalParks});
        }
    })

});

app.get("/home",function(req,res){
    nationalPark.find({},function(err,nationalParks){
        if(err){
            console.log(err);
        }else{
            console.log(nationalParks);
            res.render("home",{nationalParks:nationalParks});
        }
    })
});

app.get("/login",function(req,res){
    res.render("login");
});
app.get("/signup",function(req,res){
    res.render("signup");
});
app.get("/logout",function(req,res){
    res.render("home");
});

app.get("/NationalPark",function(req,res){
    console.log(park.park)
 res.render("NationalPark",{park:park.park});
});

app.post("/NationalPark",function(req,res){

      console.log(req.body);
    res.render("NationalPark");
});
app.get("/post",function(req,res){
    res.render("post");
});
app.get("/post-display",function(req,res){
    res.render("post-display");
});
app.get("/profile",function(req,res){
    res.render("profile");
});

//listening port
app.listen(3000,function(){
    console.log("Server started");
});

这是我的home.ejs文件

<!doctype html>
<html lang="en">
  <head>
    <!-- Required meta tags -->
    <meta charset="utf-8">
    <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">

    <!-- Bootstrap CSS -->
    <link href=";display=swap" rel="stylesheet">
    <link rel="stylesheet" href=".0.0/css/bootstrap.min.css" integrity="sha384-Gn5384xqQ1aoWXA+058RXPxPg6fy4IWvTNh0E263XmFcJlSAwiGgFAW/dAiS6JXm" crossorigin="anonymous">
    <link rel="stylesheet" type="text/css" href="/css/national-parks.css">


  </head>
  <body>


        <div class="container" id="headContainer">
          <div class="row">
            <div class="col-2">
              <nav class="nav flex-column">
                <a class="nav-link active text-white" href="/login">Login</a>
                <a class="nav-link active text-white" href="/signup">Sign Up</a>
                <a class="nav-link active text-white" href="/logout">Logout</a>
              </nav>
            </div>

            <div class="col-10" id="heading">
              <h1 class="display-3">National Parks Observer</h1>
              <p class="lead">Site Dedicated to Indian National Parks</p>
             </div>


         </div>
        </div>




        <div class="container" id="postings">

         <%  var r=Math.round(nationalParks.length/3); %>
         <% var x = 1; %>
         <% var elementCount = 3; %>
         <% var constant = 3; %>
         <% var start=0; %>
         <% while(x<=r){ %>
          <div class="row">

           <% for(var k=start;k<elementCount;k++){ %>

            <div class="col-4">
              <div class="card">

               <form method="POST" action="/NationalPark">  
                <img class="card-img-top" src=<%=nationalParks[k].imageurl %> alt="Card image cap">


                <h5 class="card-title" name="parktitle" id="title"><%=nationalParks[k].nationalPark %></h5>

                  <button type="submit" class="btn btn-primary btn-sm"">View Page</button>

                </form> 

              </div>
           </div>

           <% } %>
           <%  start=start+constant; %>
           <%   elementCount=Math.min(elementCount+constant,nationalParks.length); %>


          </div>

          <% x++; }  %>










        </div>


        <br>
        <br>
        <br>



    <!-- Optional JavaScript -->
    <!-- jQuery first, then Popper.js, then Bootstrap JS -->
    <script src=".2.1.slim.min.js" integrity="sha384-KJ3o2DKtIkvYIK3UENzmM7KCkRr/rE9/Qpg6aAZGJwFDMVNA/GpGFF93hXpG5KkN" crossorigin="anonymous"></script>
    <script src=".js/1.12.9/umd/popper.min.js" integrity="sha384-ApNbgh9B+Y1QKtv3Rn7W3mgPxhU9K/ScQsAP7hUibX39j7fakFPskvXusvfa0b4Q" crossorigin="anonymous"></script>
    <script src=".0.0/js/bootstrap.min.js" integrity="sha384-JZR6Spejh4U02d8jOt6vLEHfe/JQGiRRSQQxSfFWpi1MquVdAyjUar5+76PVCmYl" crossorigin="anonymous"></script>

    <script src="/javascript/national-park.js"></script>     

  </body>
</html>

[app.js中的后续发布方法

app.post("/NationalPark",function(req,res){

      console.log(req.body);
    res.render("NationalPark");
});

[console.log(req.body)只需打印{}

为什么发生,我错过了什么吗?非常感谢您的帮助。提前致谢。

回答如下:

您的表格,以下摘录中没有<input />元素。

<form method="POST" action="/NationalPark">  
                <img class="card-img-top" src=<%=nationalParks[k].imageurl %> alt="Card image cap">


                <h5 class="card-title" name="parktitle" id="title"><%=nationalParks[k].nationalPark %></h5>

                  <button type="submit" class="btn btn-primary btn-sm"">View Page</button>

                </form> 

因此,没有数据被发布回应用程序。

添加输入元素示例

<Input type="hidden" name="park_name" value=<%=nationalParks[k].nationalPark %> />

以您的表格将使属性req.body.park_name在app.js中可用

节点Js中的请求主体为空

在我的Node应用程序中,我试图查看request.body对象,以检查其中是否包含元素,但是console.log(req.body)将其清空。这是我的文件。

[下面的app.js文件

var express = require("express");
var app = express();
var mongoose = require("mongoose");
var nationalPark = require("./models/NationalParks");



//config
mongoose.connect('mongodb://localhost/National_Parks', {useNewUrlParser: true, useUnifiedTopology: true}).catch(function(reason){
    console.log('Unable to connect to the mongodb instance. Error: ', reason);
});
app.set('view engine', 'ejs');
var bod = require("body-parser");
app.use(bod.urlencoded({extended:true}));
app.use(bod.json());


app.use(express.static(__dirname + '/resources'));


//Routes
app.get("/",function(req,res){
    nationalPark.find({},function(err,nationalParks){
        if(err){
            console.log(err);
        }else{

            res.render("home",{nationalParks:nationalParks});
        }
    })

});

app.get("/home",function(req,res){
    nationalPark.find({},function(err,nationalParks){
        if(err){
            console.log(err);
        }else{
            console.log(nationalParks);
            res.render("home",{nationalParks:nationalParks});
        }
    })
});

app.get("/login",function(req,res){
    res.render("login");
});
app.get("/signup",function(req,res){
    res.render("signup");
});
app.get("/logout",function(req,res){
    res.render("home");
});

app.get("/NationalPark",function(req,res){
    console.log(park.park)
 res.render("NationalPark",{park:park.park});
});

app.post("/NationalPark",function(req,res){

      console.log(req.body);
    res.render("NationalPark");
});
app.get("/post",function(req,res){
    res.render("post");
});
app.get("/post-display",function(req,res){
    res.render("post-display");
});
app.get("/profile",function(req,res){
    res.render("profile");
});

//listening port
app.listen(3000,function(){
    console.log("Server started");
});

这是我的home.ejs文件

<!doctype html>
<html lang="en">
  <head>
    <!-- Required meta tags -->
    <meta charset="utf-8">
    <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">

    <!-- Bootstrap CSS -->
    <link href=";display=swap" rel="stylesheet">
    <link rel="stylesheet" href=".0.0/css/bootstrap.min.css" integrity="sha384-Gn5384xqQ1aoWXA+058RXPxPg6fy4IWvTNh0E263XmFcJlSAwiGgFAW/dAiS6JXm" crossorigin="anonymous">
    <link rel="stylesheet" type="text/css" href="/css/national-parks.css">


  </head>
  <body>


        <div class="container" id="headContainer">
          <div class="row">
            <div class="col-2">
              <nav class="nav flex-column">
                <a class="nav-link active text-white" href="/login">Login</a>
                <a class="nav-link active text-white" href="/signup">Sign Up</a>
                <a class="nav-link active text-white" href="/logout">Logout</a>
              </nav>
            </div>

            <div class="col-10" id="heading">
              <h1 class="display-3">National Parks Observer</h1>
              <p class="lead">Site Dedicated to Indian National Parks</p>
             </div>


         </div>
        </div>




        <div class="container" id="postings">

         <%  var r=Math.round(nationalParks.length/3); %>
         <% var x = 1; %>
         <% var elementCount = 3; %>
         <% var constant = 3; %>
         <% var start=0; %>
         <% while(x<=r){ %>
          <div class="row">

           <% for(var k=start;k<elementCount;k++){ %>

            <div class="col-4">
              <div class="card">

               <form method="POST" action="/NationalPark">  
                <img class="card-img-top" src=<%=nationalParks[k].imageurl %> alt="Card image cap">


                <h5 class="card-title" name="parktitle" id="title"><%=nationalParks[k].nationalPark %></h5>

                  <button type="submit" class="btn btn-primary btn-sm"">View Page</button>

                </form> 

              </div>
           </div>

           <% } %>
           <%  start=start+constant; %>
           <%   elementCount=Math.min(elementCount+constant,nationalParks.length); %>


          </div>

          <% x++; }  %>










        </div>


        <br>
        <br>
        <br>



    <!-- Optional JavaScript -->
    <!-- jQuery first, then Popper.js, then Bootstrap JS -->
    <script src=".2.1.slim.min.js" integrity="sha384-KJ3o2DKtIkvYIK3UENzmM7KCkRr/rE9/Qpg6aAZGJwFDMVNA/GpGFF93hXpG5KkN" crossorigin="anonymous"></script>
    <script src=".js/1.12.9/umd/popper.min.js" integrity="sha384-ApNbgh9B+Y1QKtv3Rn7W3mgPxhU9K/ScQsAP7hUibX39j7fakFPskvXusvfa0b4Q" crossorigin="anonymous"></script>
    <script src=".0.0/js/bootstrap.min.js" integrity="sha384-JZR6Spejh4U02d8jOt6vLEHfe/JQGiRRSQQxSfFWpi1MquVdAyjUar5+76PVCmYl" crossorigin="anonymous"></script>

    <script src="/javascript/national-park.js"></script>     

  </body>
</html>

[app.js中的后续发布方法

app.post("/NationalPark",function(req,res){

      console.log(req.body);
    res.render("NationalPark");
});

[console.log(req.body)只需打印{}

为什么发生,我错过了什么吗?非常感谢您的帮助。提前致谢。

回答如下:

您的表格,以下摘录中没有<input />元素。

<form method="POST" action="/NationalPark">  
                <img class="card-img-top" src=<%=nationalParks[k].imageurl %> alt="Card image cap">


                <h5 class="card-title" name="parktitle" id="title"><%=nationalParks[k].nationalPark %></h5>

                  <button type="submit" class="btn btn-primary btn-sm"">View Page</button>

                </form> 

因此,没有数据被发布回应用程序。

添加输入元素示例

<Input type="hidden" name="park_name" value=<%=nationalParks[k].nationalPark %> />

以您的表格将使属性req.body.park_name在app.js中可用

与本文相关的文章

发布评论

评论列表 (0)

  1. 暂无评论