【问题标题】:How to parse POST response body in Node如何在 Node 中解析 POST 响应正文
【发布时间】:2019-10-04 06:41:29
【问题描述】:

    
const express = require("express");
const bodyParser = require("body-parser");
const app = express();
app.get(bodyParser.urlencoded({extended: true}));
app.get("/", function(req, res){
  res.sendFile(__dirname + "/index.html");
});
app.post("/", function(req, res){
console.log(req.body.crypto);
});
app.listen(3000, function(){
  console.log("server is running in port 3000");
});

    
const express = require("express");
const bodyParser = require("body-parser");
const app = express();
app.get(bodyParser.urlencoded({extended: true}));
app.get("/", function(req, res){
  res.sendFile(__dirname + "/index.html");
});
app.post("/", function(req, res){
console.log(req.body.crypto);
});
app.listen(3000, function(){
  console.log("server is running in port 3000");
});
<!DOCTYPE html>
<html lang="en" dir="ltr">

<head>
  <meta charset="utf-8">
  <title>Bitcoin ticker</title>
</head>

<body>
  <h1>Bitcoin Ticker</h1>

  <form action="/" method="post">
    
    <select name="crypto">
      <option value="BTC">Bitcoin</option>
      <option value="ETC">Ethereum</option>
      <option value="LTC">Litecoins</option>
    </select>

    <select name="fiat">
      <option value="USD">US Doller</option>
      <option value="GBP">GB Pounds</option>
      <option value="EUR">EU Euroes</option>
    </select>

    <button type="submit" name="button">Check</button>
  </form>

</body>

</html>

当我请求发布请求时,javascript 代码出现问题,浏览器显示无法读取未定义的属性“加密” 当我运行代码时没有错误但是当我选择无法读取时 属性“加密” 我认为错误可能在这里 console.log(req.body.crypto);

【问题讨论】:

  • 请分享相关的代码库,但从错误中我猜你正在尝试在浏览器上导入 nodejs 'crypto' 模块

标签: javascript html node.js express


【解决方案1】:

您的req.body 未定义,

你必须做这条线

app.get(bodyParser.urlencoded({extended: true}));

app.use(bodyParser.urlencoded({extended: true}));

【讨论】:

    【解决方案2】:

    您的req.body 似乎未定义。

    猜测问题出在body-parser

    尝试更改此行

    app.get(bodyParser.urlencoded({extended: true}))
    

    app.use(bodyParser.urlencoded({extended: true}))
    

    不要将body-parserapp.get 一起应用,而是与app.use 一起使用

    【讨论】:

      【解决方案3】:

      SubburajRon537 都是正确的,因为body-parsermiddleware,并且在express 中,您使用use 方法将middleware 包含到您的快速程序中。在您的情况下,在您的应用程序中包含正文解析器module/middleware,如果您想同时发布子文档,请执行app.use(bodyParser.urlencoded({extended: true})),如果您不想发布子文档,请执行app.use(bodyParser.urlencoded({extended: false}))

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-02-24
        • 2019-09-02
        相关资源
        最近更新 更多